I’m having difficulties writing a case statement with multiple IS NULL, NOT NULL conditions. I have the case statement below, however the third condition (WHEN ID IS NOT NULL AND LABEL IS NULL THEN TITLE) does not seem to be recognised. When Label is null, the statement does not pick up title. Is there a different way to write this case statement?
x
CASE WHEN ID IS NULL THEN TEXT
WHEN ID IS NOT NULL THEN LABEL
WHEN ID IS NOT NULL AND LABEL IS NULL THEN TITLE
END AS DESCRIPTION
Thanks
Advertisement
Answer
The CASE
expression stops that the first match. So you want the more restrictive conditions first. In your case:
(CASE WHEN ID IS NOT NULL AND LABEL IS NULL THEN TITLE
WHEN ID IS NOT NULL THEN LABEL
WHEN ID IS NULL THEN TEXT
END) AS DESCRIPTION
Or, a simpler formulation is:
(CASE WHEN ID IS NULL THEN TEXT
WHEN LABEL IS NULL THEN TITLE
ELSE LABEL
END) AS DESCRIPTION
After the first condition, we know that ID IS NOT NULL
, so there is no need to check that again.