Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Oracle SQL CASE WHEN IS NULL

I am learning Oracle SQL :)

1.

CASE s.COURSE_SCHEDULED_ID
    WHEN IS NULL THEN 'false'
    ELSE 'true'
END AS "Is scheduled?"
CASE 
    WHEN s.COURSE_SCHEDULED_ID IS NULL THEN 'false'
    ELSE 'true'
END AS "Is scheduled?"

Why 1 is not working?

like image 200
Adolis Pali Avatar asked Oct 25 '25 19:10

Adolis Pali


1 Answers

Your first CASE expression won't even compile, but if we make a small change then it will:

CASE s.COURSE_SCHEDULED_ID
    WHEN NULL THEN 'false'
    ELSE 'true'
END AS "Is scheduled?"

This will be evaluated as this:

CASE WHEN s.COURSE_SCHEDULED_ID = NULL
     THEN 'false'
     ELSE 'true'
END AS "Is scheduled?"

Note very carefully that the COURSE_SCHEDULED_ID is being compared to NULL using the equality operator. This won't work as expected with NULL. Instead, for NULL checks the second verbose version always must be used as it allows IS NULL and IS NOT NULL checks.

like image 144
Tim Biegeleisen Avatar answered Oct 27 '25 09:10

Tim Biegeleisen