Reputation: 3
How do I modify this to return only false values and avoid true values
SELECT b."/BIC/ZSORHDR",
case when a."/BIC/ZSORHDR" is null then 'false' else end
FROM sappha."/BIC/ADD060400" b
LEFT OUTER JOIN sappha."/BIC/AOPM20400" a
ON (b."/BIC/ZSORHDR" = a."/BIC/ZSORHDR")
WHERE b."LOAD_DATE" = '20210118'
Upvotes: 0
Views: 34
Reputation: 35910
the best way is to use NOT EXISTS
as follows:
SELECT b."/BIC/ZSORHDR"
FROM sappha."/BIC/ADD060400" b
WHERE NOT EXISTS
(select 1 from sappha."/BIC/AOPM20400" a
WHERE b."/BIC/ZSORHDR" = a."/BIC/ZSORHDR")
AND b."LOAD_DATE" = '20210118'
Upvotes: 0
Reputation: 521457
Move the logic in the CASE
expression in the select to the WHERE
clause:
SELECT b."/BIC/ZSORHDR"
FROM sappha."/BIC/ADD060400" b
LEFT JOIN sappha."/BIC/AOPM20400" a
ON b."/BIC/ZSORHDR" = a."/BIC/ZSORHDR"
WHERE
b."LOAD_DATE" = '20210118' AND
a."/BIC/ZSORHDR" IS NULL;
Upvotes: 1