Wednesday, June 03, 2015

[sql][Tips] มาใช้ คำสั่ง COALESCE สำหรับกำหนดเงื่อนไข NULL หรือไม่กันดีกว่า

[sql][Tips] มาใช้ คำสั่ง COALESCE สำหรับกำหนดเงื่อนไข NULL หรือไม่กันดีกว่า



สำหรับการใช้คำสั่ง 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: