3,490
社区成员
发帖
与我相关
我的任务
分享
with t as (
select 'aaaaa' a, 1 b from dual union all
select 'aaaaa' a, 1 b from dual union all
select 'aaaaa' a, 2 b from dual union all
select 'aaaaa' a, 2 b from dual union all
select 'bbbbb' a, 1 b from dual union all
select 'bbbbb' a, 2 b from dual union all
select 'bbbbb' a, 1 b from dual union all
select 'ccccc' a, 2 b from dual union all
select 'ccccc' a, 2 b from dual union all
select 'd' a, 2 b from dual
)
,
t1 as(
select
rank() over (order by a ) pid1,
rank() over (partition by a order by b ) pid,
t.* from t)
select to_char(sysdate,'yyyymmdd')||lpad(pid1,3,'0')||lpad(pid,3,'0') pid,
a,
b
from t1
试试看