Expression ที่ไม่สามารถประมวลลได้ เช่น 1/0 ค่าที่ได้จะเป็น NULL และถ้าเราใช้ค่า NULL กับตัวดำเนินการทางคณิตศาสตร์หรือการเปรียบเทียบ ผลลัพธ์ที่ได้จะเป็น NULL เช่นกัน
SELECT NULL + 1, NULL < 1;
| NULL + 1 | NULL < 1 |
|---|---|
| NULL | NULL |
ถึงแม้ว่าการเปรียบเทียบค่า NULL จะมีค่าที่เท่ากันแต่ผลที่ได้ก็ยังคงเป็น NULL อยู่ดี
SELECT NULL = 1, NULL != NULL;
| NULL = 1 | NULL != NULL |
|---|---|
| NULL | NULL |
การใช้ตัวดำเนินการ LIKE ก็จะให้ผลลัพธ์เป็น NULL ถ้าเกิดมี operand เป็นค่า NULL
SELECT NULL LIKE '%', 'abc' LIKE NULL;
| NULL LIKE '%' | 'abc' LIKE NULL |
|---|---|
| NULL | NULL |
วิธีการที่ถูกต้องในการเปรียบเทียบค่า NULL ก็คือการใช้ IS NULL หรือ IS NOT NULL โดยมันจะคืนค่าเป็น true (1) หรือ false (0) กลับมา
SELECT NULL IS NULL, NULL IS NOT NULL;
| NULL IS NULL | NULL IS NOT NULL |
|---|---|
| 1 | 0 |
ผู้สนับสนุน