สำหรับการใช้คำสั่ง SQL โดยที่ตรวจสอบว่ามีค่า NULL หรือไม่ ก่อนการกำหนดเงื่อนไข WHERE ออกไปนั้น มักจะมีคำสั่งที่ยาวมากกว่าปกติ
มาใช้ COALESCE กันดีกว่า ซึ่งคำสั่งนี้มีความหมายว่า หากมีข้อมูลที่ต้องการให้มีเงื่อนไข ( NOT NULL) ให้ใช้เงื่อนไขข้อมูลส่วนหลัง เช่น
--to create variable for test query
DECLARE @DataForTest VARCHAR(20) = NULL
SELECT LotNoX
FROM [Packing]
WHERE LotNoX = COALESCE(@DataForTest,LotNoX)
***แบบ COALESCE
SELECT LotNoX
FROM [Packing]
WHERE LotNoX = CASE WHEN @DataForTest IS NULL THEN LotNoX ELSE @DataForTest END
***แบบ CASE WHEN…THEN…ELSE…END
IF @DataForTest IS NOT NULL
BEGIN
SELECT LotNoX
FROM [Packing]
WHERE LotNoX = @DataForTest
END
***แบบ เงื่อนไข IF
จะเห็นได้ว่า คำสั่ง COALESCE ทำให้รูปประโยคสั้นกว่า และง่ายต่อใช้เขียน query
Keywords:
SQL, COALESCE, Microsoft SQL Server
No comments:
Post a Comment