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 NULLwith default ,则可以避免这种情况0。
| 归档时间: |
|
| 查看次数: |
1522 次 |
| 最近记录: |