2015-12-30 73 views
1

這是我的第一個問題,我希望你們能幫助我。 我試圖根據具有以下列的表格製作視圖:DAY_0,DAY_1,DAY_2, DAY_3,DAY_4,DAY_5,DAY_6
問題是我只想根據實際日期來比較列,並查看它是否返回值01
我想在這樣的事情,但沒有奏效:有沒有辦法在基於變量的比較中選擇不同的列?

WHERE 'DAY_'+weekday(curdate()) = 1 

任何人知道如何幫助呢?

回答

2

使用功能

ELT(weekday(curdate())+1,DAY_0,DAY_1,..) 
+0

這是一個了不起的解決方案!非常感謝! –

+0

不客氣! – splash58

0

不能使用這樣的變量列名,但你可以做這樣的事情:

WHERE 
    CASE WEEKDAY(CURDATE()) 
     WHEN 0 THEN DAY_0 
     WHEN 1 THEN DAY_1 
     ... 
    END CASE = 1 

你也可能想看看數據庫規範化。

0

,但你可以這樣做:

SELECT 
    CASE 
    WHEN WEEKDAY(CURDATE()) = 0 THEN day_0 
    WHEN WEEKDAY(CURDATE()) = 1 THEN day_1 
    WHEN WEEKDAY(CURDATE()) = 2 THEN day_2 
    WHEN WEEKDAY(CURDATE()) = 3 THEN day_3 
    WHEN WEEKDAY(CURDATE()) = 4 THEN day_4 
    WHEN WEEKDAY(CURDATE()) = 5 THEN day_5 
    WHEN WEEKDAY(CURDATE()) = 6 THEN day_6 
    END AS theDay 

FROM myTable; 
相關問題