文章目录
1.生成自增id:row number() over(order by)
使用窗口函数来生成自增id是比较常见的手法
select * from yc_test1
grade_id subject_name max_score
1 语文 98
2 数学 95
2 政治 87
5 语文 97
5 数学 100
6 政治 92
--给上表追加一个自增id的查询
select
row_number( order by grade_id)as id
,grade_id
,subject_name
,max_score
from
yc_test1
--查询结果
id grade_id subject_name max_score
1 1 语文 98
2 2 数学 95
3 2 政治 87
4 5 语文 97
5 5 数学 100
6 6 政治 92
.
2.随机不重复id: regexp_replace(reflect(‘java.util.UUID’,‘randomUUID’),’-’,’’)
1.reflect() 函数可以调用jdk内置的静态方法,参数为不定长函数
2.UUID.randomUUID() 是 javaJDK提供的一个自动生成主键的方法
3.UUID(Universally Unique Identifier):通用唯一识别码,是一种软件建构的标准。并且保证同一时空生成的机械码都是唯一的长串
如:51bee5d5-d28d-4561-9347-63634930055c
4.因为我这边id不想要中间的’-’,所以使用regexp_replace将’-'替换为无
select * from yc_test1
grade_id subject_name max_score
1 语文 98
2 数学 95
2 政治 87
5 语文 97
5 数学 100
6 政治 92
--给上表追加一个随机id的查询
select
regexp_replace(reflect('java.util.UUID','randomUUID'),'-','') id
,grade_id
,subject_name
,max_score
from
yc_test1 limit 2;
--查询结果
id grade_id subject_name max_score
51bee5d5d28d4561934763634930055c 1 语文 98
74df9490f93f4a67876c3b32a929686c 2 数学 95