我在尝试找出一种基于某些条件从表中获取信息的方法时遇到了一些麻烦。
我想做的事情:如果CATEGORY列在A,B,C或D中,我希望从DATEX列中获取日期。如果类别在E,F中,我想从DATEY列中获取日期:
SELECT
COLUMNX
FROM
TABLE A
WHERE
A.CONDITION1 = A.CONDITION2 AND
(CASE
WHEN A.CATEGORY IN ('A', 'B', 'C', 'D') THEN
A.DATEX = (SELECT ...)
WHEN A.CATEGORY IN ('E', 'F') THEN
A.DATEY = (SELECT ...)
END)
但这不起作用,我收到sintax错误。任何帮助都会很棒。
答案 0 :(得分:2)
您可以Case
逻辑模拟AND/OR
子句中的IF-Else
,而不是Where
语句。试试这个。
SELECT COLUMNX
FROM TABLE A
WHERE A.CONDITION1 = A.CONDITION2
AND ( A.CATEGORY IN ( 'A', 'B', 'C', 'D' )
AND A.DATEX = (SELECT ..) )
OR ( A.CATEGORY IN ( 'E', 'F' )
AND A.DATEY = (SELECT 1..) )