有这样一个表:
bianma mingcheng
123324 aaaa
.
.
.
233232 bbbb
.
.
.
.
556566 gggg
现在要将bianma这一列重新编码,比如:1开头的全部从10001开始编到最后。2开头的全部从20001开始编到最后,,,9开头的从90001开始到最后,以此类推。
SELECT regexp_replace(bianma,'[0-9]','0',2)+ROW_NUMBER() OVER (PARTITION BY substr(bianma,1,1) ORDER BY bianma) AS bianma
,mingcheng
FROM OLD_TABLE;
和
select substr(id, 1, 1) * 10000 + row_number() over(partition by substr(id, 1, 1) order by 1) id,
z1.name
from z1
最后说明:以上解法都是在论坛上复制过来的.作为我参考学习之用.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15081535/viewspace-421403/ ,如需转载,请注明出处,否则将追究法律责任。