2017-08-10 87 views
0

背景:我正在構建一個相當簡單的表,它只是一個select * from另一個表,需要選擇最後一個表如果是星期一,則爲3天的數據,如果是星期二至星期五,則爲最後一天的數據。Teradata - if ... then ...取決於星期幾(運行不同的代碼)

問題:我不知道我明白如何使用IF ... THEN語句來執行此操作。

代碼試圖

IF DAY_OF_WEEK = 2 

    THEN 

     SELECT * FROM TABLE WHERE DATE BETWEEN CURRENT_DATE-3 AND CURRENT_DATE 

    ELSE 

     SELECT * FROM TABLE WHERE DATE BETWEEN CURRENT_DATE-1 AND CURRENT_DATE 

    END IF 

這顯然不工作,但展現了什麼,我試圖做的邏輯。有關我如何解決這個問題的任何想法?

回答

0

下應該完成什麼你正在嘗試做的:

SELECT * 
    FROM TABLE 
WHERE DATE_COLUMN >= (SELECT CASE WHEN TD_DAY_OF_WEEK(CURRENT_DATE) = 2 
            THEN CURRENT_DATE - 3 
            ELSE CURRENT_DATE - 1 
           END) 
    AND DATE_COLUMN <= CURRENT_DATE; 
+1

喜@搶。非常類似的解決方案 - 看起來像我們同時發佈。不過,感謝您的幫助。 –