我想创建一个基于数据的查询,可以显示三列中的一列。
我有三个日期列: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 :(得分: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