SELECT LIST1,
LIST2,
CASE
WHEN (([LIST1] LIKE '%APR%'
OR [LIST1] LIKE '%NOLA%')
OR ([LIST2] NOT LIKE '%APR%'
AND [LIST2] NOT LIKE '%NOLA%'))
THEN 1
ELSE 0
END AS RESULTS
LIST1 LIST2 RESULTS
APRIL NOLA 1
NOLA BEBB 1
NOLA APROLS 1
APRA BLIN 1
это дает вам оба случая 1, потому что [LIST1] LIKE '%APR%' OR [LIST1] LIKE '%NOLA%'
эта строка верна для 'APRIL' значения 1-й строки списка1
и снова это верно для 'NOLA' для 2-й строки, и когда любая часть будет иметь значение true или условие, тогда полное условие будет истинным. В результате вы получили оба случая 1
но если вы поставите условие and
, то результат будет таким, как вы ожидаете
SELECT LIST1,
LIST2,
CASE WHEN (
(
[LIST1] LIKE '%APR%'
OR [LIST1] LIKE '%NOLA%')
AND
(
[LIST2] NOT LIKE '%APR%'
AND [LIST2] NOT LIKE '%NOLA%')
)
THEN 1
ELSE 0
END AS RESULTS from t
http://sqlfiddle.com/#!18/9f8c5/1
LIST1 LIST2 RESULTS
APRIL NOLA 0
NOLA BEBB 1
NOLA APROLS 0
APRA BLIN 1