這是我的第一個問題,我希望你們能幫助我。 我試圖根據具有以下列的表格製作視圖:DAY_0
,DAY_1
,DAY_2
, DAY_3
,DAY_4
,DAY_5
,DAY_6
。
問題是我只想根據實際日期來比較列,並查看它是否返回值0
或1
。
我想在這樣的事情,但沒有奏效:有沒有辦法在基於變量的比較中選擇不同的列?
WHERE 'DAY_'+weekday(curdate()) = 1
任何人知道如何幫助呢?
這是我的第一個問題,我希望你們能幫助我。 我試圖根據具有以下列的表格製作視圖:DAY_0
,DAY_1
,DAY_2
, DAY_3
,DAY_4
,DAY_5
,DAY_6
。
問題是我只想根據實際日期來比較列,並查看它是否返回值0
或1
。
我想在這樣的事情,但沒有奏效:有沒有辦法在基於變量的比較中選擇不同的列?
WHERE 'DAY_'+weekday(curdate()) = 1
任何人知道如何幫助呢?
使用功能
ELT(weekday(curdate())+1,DAY_0,DAY_1,..)
不能使用這樣的變量列名,但你可以做這樣的事情:
WHERE
CASE WEEKDAY(CURDATE())
WHEN 0 THEN DAY_0
WHEN 1 THEN DAY_1
...
END CASE = 1
你也可能想看看數據庫規範化。
,但你可以這樣做:
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;
這是一個了不起的解決方案!非常感謝! –
不客氣! – splash58