[英]How to perform update based on condition on respected column in MSSQL Server
我在表中共有8列,其中4列是日期,其余4列是迄今為止的標志。 因此表結構如下所示。
Column1 Column2 Column3 Column4 FlagOfColumn1 FlagOfColumn2 FlagOfColumn3 FlagOfColumn4
我在前4列中有數據(日期),在其余4列中默認為空。 現在的條件是。 如果日期(在任何列的表中)少於8周(與今天的日期相比)。 比我必須設置0到尊敬的列。 假設Column1的日期少於8周,那么我必須像這樣將0設置為FlagOfColumn1。 我寫了簡單的更新查詢,將我不想的所有4個標志列都設置為0。
使用CASE
:
UPDATE yourTable
SET
FlagOfColumn1 = CASE WHEN Column1 < DATEADD(wk, -8, GETDATE())
THEN 0 ELSE FlagOfColumn1 END
,FlagOfColumn2 = CASE WHEN Column2 < DATEADD(wk, -8, GETDATE())
THEN 0 ELSE FlagOfColumn2 END
,FlagOfColumn3 = CASE WHEN Column3 < DATEADD(wk, -8, GETDATE())
THEN 0 ELSE FlagOfColumn3 END
,FlagOfColumn4 = CASE WHEN Column4 < DATEADD(wk, -8, GETDATE())
THEN 0 ELSE FlagOfColumn4 END
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.