在Oracle中,只有在insert语句的列日期(DATE)发生变化时,我才需要编写SQL查询以增加列的帮助:
初始表结构:
ID DATE NAME
-- ---- ----
1 20170428 abc
现在第二天,我必须插入三个不同的记录。该表应如下所示:
ID DATE NAME
-- ---- ----
1 20170428 abc
2 20170429 def
2 20170429 ghi
2 20170429 jkl
以上我从.csv
文件中读取的数据和日期将作为当前系统日期返回。
所以ID
只有在日期从表格中的最后一条记录改变时才会增加。
答案 0 :(得分:0)
我不知道设置自动增量列的任何方法都是这样的。但是,在许多方面甚至可能更为可取的一种替代方法是使用Oracle的ID
按需生成DENSE_RANK()
列。像这样:
SELECT
DENSE_RANK() OVER (ORDER BY DATE) ID,
DATE,
NAME
FROM yourTable