2015-11-22 44 views
0

我想創建一個基於數據的查詢,它可以顯示三列中的一列。mySQL IF列包含特定數據,顯示該列,否則顯示另一列

我有三個日期列:Date1,Date2,Date3。如果Date1不等於'0000-00-00 00:00:00'且小於「<」NOW(),則顯示該列。如果這兩個值都不滿足,請查看Date2以獲取相同的查詢。如果不滿意,請查看Date3。

這是我試過的語法拼湊:

SELECT ID, Type, Status, IF (Date1 <> '0000-00-00 00:00:00' AND < NOW() THEN Date1 ELSEIF Date2 <> '0000-00-00 00:00:00' AND < NOW() THEN Date2 ELSEIF Date3 <> '0000-00-00 00:00:00' AND < NOW() THEN Date3) AS col1 FROM tableA 

任何幫助將不勝感激!

回答

0

您不能在查詢中使用IF THEN ELSEIF。您在尋找CASE

SELECT ID, Type, Status, 
    (CASE 
     WHEN Date1 <> '0000-00-00 00:00:00' AND Date1 < NOW() 
      THEN Date1 
     WHEN Date2 <> '0000-00-00 00:00:00' AND Date2 < NOW() 
      THEN Date2 
     WHEN Date3 <> '0000-00-00 00:00:00' AND Date3 < NOW() 
      THEN Date3 
     ELSE NULL 
    END) AS col1 
FROM tableA