StepCoding

ค่า NULL ใน expression และการเปรียบเทียบ

อ่าน [1900] หมวดหมู่: คำสั่ง SQL เบื้องต้น

Expression ที่ไม่สามารถประมวลลได้ เช่น 1/0 ค่าที่ได้จะเป็น NULL และถ้าเราใช้ค่า NULL กับตัวดำเนินการทางคณิตศาสตร์หรือการเปรียบเทียบ ผลลัพธ์ที่ได้จะเป็น NULL เช่นกัน

SELECT NULL + 1, NULL < 1;
NULL + 1NULL < 1
NULLNULL

ถึงแม้ว่าการเปรียบเทียบค่า NULL จะมีค่าที่เท่ากันแต่ผลที่ได้ก็ยังคงเป็น NULL อยู่ดี

SELECT NULL = 1, NULL != NULL;
NULL = 1NULL != NULL
NULLNULL

การใช้ตัวดำเนินการ LIKE ก็จะให้ผลลัพธ์เป็น NULL ถ้าเกิดมี operand เป็นค่า NULL

SELECT NULL LIKE '%', 'abc' LIKE NULL;
NULL LIKE '%''abc' LIKE NULL
NULLNULL

วิธีการที่ถูกต้องในการเปรียบเทียบค่า NULL ก็คือการใช้ IS NULL หรือ IS NOT NULL โดยมันจะคืนค่าเป็น true (1) หรือ false (0) กลับมา

SELECT NULL IS NULL, NULL IS NOT NULL;
NULL IS NULLNULL IS NOT NULL
10

ผู้สนับสนุน