度量快速开发平台-专业、快速的软件定制快开平台
标题:
oracle中自动编码
[打印本页]
作者:
张兴康
时间:
2020-2-21 19:59
标题:
oracle中自动编码
现有如下图所示一张表:
1.png
(7.24 KB, 下载次数: 107)
下载附件
保存到相册
2020-2-21 19:57 上传
最终要实现下面这样的编码结果:
--要求最终的结果,自动编码
ID p_id NAME CODE
1 1 -1 A 03
2 2 1 B1 0301
3 5 2 C1 030101
4 6 2 C2 030102
5 3 1 B2 0302
6 7 3 D1 030201
7 4 1 B3 0303
复制代码
实现代码如下:
select id,
p_id,
name,
decode(p_id,
-1,
code,
code ||
replace(substr(sys_connect_by_path(pos, '.'),
instr(sys_connect_by_path(pos, '.'), '.', 1, 2)),
'.',
'0')) new_code
from (select id,
p_id,
name,
last_value(code ignore nulls) over(order by rownum) code,
row_number() over(partition by p_id order by rownum) pos
from t_test)
start with p_id = -1
connect by prior id = p_id;
复制代码
作者:
万望
时间:
2020-2-21 21:39
作者:
张兴康
时间:
2020-2-22 12:54
万望 发表于 2016-3-21 21:39
欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://plat.delit.cn/)
Powered by Discuz! X3.2