C/C++教程

Oracle系列---【在sql语句中新增非自增的ID时,如何生成ID?】

本文主要是介绍Oracle系列---【在sql语句中新增非自增的ID时,如何生成ID?】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.今天同事遇到一个问题,Oracle数据库,用insert...select从老表中往新表中新增数据时,新表的ID不是自增的,需要在sql语句中生成一个NUMBER(20,0)的ID.

insert into table1 (RULE_ID,RULE_CODE,RULE_NAME ) SELECT t2.RULE_ID t2.RULE_CODE,t2.RULE_NAME from table2 t2

2.因为table2表中的RULE_ID为字符串,而table1中的RULE_ID为NUMBER(20,0),字符串转换不成数字,所以需要重新生成ID

insert into table1 (RULE_ID,RULE_CODE,RULE_NAME ) SELECT lpad(rownum,20,0)  t2.RULE_CODE,t2.RULE_NAME from table2 t2

3.扩展

lpad(rownum,20,0)这个函数会生成数字;

'ID'||lpad(rownum,20,0)前面加个'ID'可以生成字符串'ID0001'。

这篇关于Oracle系列---【在sql语句中新增非自增的ID时,如何生成ID?】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!