我确实有一个类似下面的查询,并且希望在此Select查询中包含另一个条件。
我需要为Column7添加一个条件,即仅当Column9不是某些值的模式时,才应选择value为“ FALSE”。说column9不像'abcd%'。
基本上我希望当Column9具有某种模式时,此查询不按Column7的条件将记录过滤为FALSE。
查询-
SELECT column1, column2, column3
FROM schema.table1
WHERE
column4 > TO_DATE('2018-02-02', 'yyyy-MM-dd')
AND column5 IS NULL
AND column6 IS NOT NULL
AND Column7 = 'FALSE'
AND Column8 <> '111111';
答案 0 :(得分:3)
尝试以下查询:
SELECT column1, column2, column3
FROM schema.table1
WHERE
column4 > TO_DATE('2018-02-02', 'yyyy-MM-dd')
AND column5 IS NULL
AND column6 IS NOT NULL
AND (Column9 LIKE 'abcd%' OR Column7 = 'FALSE')
AND Column8 <> '111111';
SQL Server
答案 1 :(得分:0)
在您的AND
子句中使用WHERE
条件:
SELECT column1, column2, column3
FROM schema.table1
WHERE
column4 > TO_DATE('2018-02-02', 'yyyy-MM-dd') AND
column5 IS NULL AND
column6 IS NOT NULL AND
(Column7 = 'TRUE' OR Column9 NOT LIKE 'abcd%') AND
Column8 <> '111111' ;
答案 2 :(得分:0)
您还可以将 REGEXP_LIKE 用于匹配:-
SELECT column1, column2, column3
FROM schema.table1
WHERE
column4 > TO_DATE('2018-02-02', 'yyyy-MM-dd')
AND column5 IS NULL
AND column6 IS NOT NULL
AND ( not REGEXP_LIKE (Column9, 'abcd[a-z]*', 'c') OR Column7 = 'FALSE')
AND Column8 <> '111111';