如果日期列正在更改,则将列加1

时间:2017-05-03 06:36:25

标签: sql oracle

在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只有在日期从表格中的最后一条记录改变时才会增加。

1 个答案:

答案 0 :(得分:0)

我不知道设置自动增量列的任何方法都是这样的。但是,在许多方面甚至可能更为可取的一种替代方法是使用Oracle的ID按需生成DENSE_RANK()列。像这样:

SELECT
    DENSE_RANK() OVER (ORDER BY DATE) ID,
    DATE,
    NAME
FROM yourTable