簡體   English   中英

如何根據MSSQL Server中受關注列的條件執行更新

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM