SQL-運用CASE改變輸出的條件

這個例子是因為我的資料來源有前一個工作天的收盤價 所以我就很自然的把前一天的收盤價撈出來 然後把今天的日期減1天 就是昨天的收盤了 後來才想到如果是星期一的話 那收盤日就會變成星期日了 所以就寫了以下的語法修改
SELECT distinct Symbol,(CASE WHEN DATENAME(weekday, Date)='星期一' THEN DATEADD(day, -3, Date) 
                             WHEN DATENAME(weekday, Date)<>'星期一' THEN DATEADD(day, -1, Date)
                             ELSE Date END) Date,
                PriorPrice AS ClosePrice
FROM   Stock
order by Symbol,Date
如果直接update的話 範例如下
Update StockClosePrice SET Date =
CASE WHEN DATENAME(weekday, Date)='星期日' THEN DATEADD(day, -2, Date) 
ELSE Date
END

留言

這個網誌中的熱門文章

R中Try and Catch的寫法

如何將DSM(NAS)變成Mail Server

使用VBA記錄股市每分鐘的交易記錄