Ant*_*nio 1 sql-server sql-server-2012
我有2个表,我想更新table2
与的标准table1
和table2
。标准是:
1.table1.amount > 10000
2.table2.flag
为空或table2.flag = '0'
因此,如果 2 个条件为真,则更新table2.flag = '1'
和table2.flagdate = getdate()
table2.flag
是一个检查每个支付超过10,000的人的标志。但是如果已经标记了,我不想再次标记,因为我不能丢失原始的table2.flagdate
. 但是我尝试了很多东西,没有任何效果是我想要的。有任何想法吗?
UPDATE t2
SET flag = 1, flagdate = CURRENT_TIMESTAMP
FROM dbo.table2 AS t2
INNER JOIN dbo.table1 AS t1
ON t2.id = t1.id
WHERE t1.amount > 10000
AND (t2.flag IS NULL OR t2.flag = 0);
Run Code Online (Sandbox Code Playgroud)
OR
如果将flag
列更改为NOT NULL
with default ,则可以避免这种情况0
。
归档时间: |
|
查看次数: |
1522 次 |
最近记录: |