每日加载表中包含需要传输到历史表的新鲜每日数据。
历史记录表有一个额外的列“CSV_ID”,用于标识每日记录批次。例如,Daily表中的10条记录今天被转移到历史表中。所有这10条记录的CSV_ID均为1.第二天的批次将包含2作为其CSV_ID。
我是否使用带有表达式CSV_= =“”的派生列? 1:CSV_ID + 1
谢谢
答案 0 :(得分:0)
假设问题是:"我有一张表,其中新记录的CSV_ID
为空,我想将其设置为下一批号....?"
有几种方法可以做到这一点:
1.使用您想到的方法,但不是CSV_ID + 1
,而是首先获得MAX
值,然后将MAX+1
应用于空值。
2.加载数据as is
,然后将MAX+1
应用于空的,如下所示:
UPDATE MyStagingTable
SET CSV_ID = (SELECT MAX(CSV_ID)+1 FROM MyStagingTable)
WHERE CSV_ID = '';