What you probably looking for is not WHERE eligible
. Instead it's HAVING eligible
:
SELECT CASE WHEN table1.col1 IS NOT NULL AND table2.col1='someValue'
THEN 'YES'
WHEN main.col2 IS NOT NULL AND table2.col1 NOT LIKE '%Rejected%'
THEN 'YES'
ELSE NULL END AS eligible,
table1.col13,
table2.col14
FROM table1
INNER JOIN table2 ON table1.col5=table2.col6
HAVING eligible='YES'; /*here*/
Since the column eligible
is actually an alias of your CASE
expression and is not from any of your tables then you can't use it in WHERE
.
If you're more familiar with using WHERE
, here's a workaround by making the base query as subquery first:
SELECT *
FROM
( SELECT CASE WHEN table1.col1 IS NOT NULL AND table2.col1='someValue'
THEN 'YES'
WHEN main.col2 IS NOT NULL AND table2.col1 NOT LIKE '%Rejected%'
THEN 'YES'
ELSE NULL END AS eligible,
table1.col13,
table2.col14
FROM table1
INNER JOIN table2 ON table1.col5=table2.col6 ) AS subquery
WHERE eligible='YES';