有一个Daily Load表,其中包含需要传输到历史表的每日新鲜数据。
历史表有一个额外的列'CSV_ID',用于标识每日批次的记录。例如,每日表中的10条记录今天被转移到历史表中。所有这10条记录的CSV_ID都为1。第二天的批处理将以2作为其CSV_ID。
我是否使用表达式CSV_ID == " "派生列?1: CSV_ID + 1
谢谢
假设问题是:"我有一个表,其中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 = '';