เช่นเดียวกับภาษาโปรแกรมมิ่งอื่นๆ SQL Server ก็มีคำสั่ง IF...ELSE บทความนี้จะอธิบายรายละเอียดไวยากรณ์และตัวอย่างชัดเจนเพื่อให้เข้าใจง่าย
คำอธิบาย
ใน SQL Server คำสั่ง IF...ELSE ใช้สำหรับดำเนินการตามเงื่อนไข หากเงื่อนไขเป็นจริง จะดำเนินการคำสั่งนั้น หากเป็นเท็จ จะดำเนินการคำสั่งอื่น
ไวยากรณ์ของ IF...ELSE
การใช้งานคำสั่ง IF...ELSE ใน SQL Server มีรูปแบบดังนี้:
IF dieukien
{. คำสั่งที่ดำเนินการเมื่อเงื่อนไขเป็น TRUE .}
[ELSE
{. คำสั่งที่ดำเนินการเมื่อเงื่อนไขเป็น FALSE .}]
หมายเหตุ:
- ELSE ไม่จำเป็น คุณจะใช้เงื่อนไข ELSE เมื่อต้องการดำเนินการชุดคำสั่งที่เงื่อนไข IF ประเมินเป็น FALSE (คือเงื่อนไขไม่เป็นจริง)
- ไม่มีเงื่อนไข ELSE IF ในคำสั่ง IF...ELSE แทนที่จะต้องใช้คำสั่ง IF...ELSE 巢狀 (nested) หลายชั้นเพื่อให้ได้ผลลัพธ์ที่ต้องการ
โครงสร้าง IF...ELSE

ตัวอย่าง - คำสั่ง IF...ELSE ที่มีเงื่อนไข
DECLARE @nhanvien_salary INT;
SET @nhanvien_salary = 15000000;
IF @nhanvien_salary > 10000000
PRINT 'Truong phong';
ELSE
PRINT 'Graduate';
GO
ในคำสั่ง IF...ELSE นี้ หากเงินเดือนพนักงาน > 10,000,000 ผลลัพธ์จะเป็น 'Truong phong' หากน้อยกว่าจะเป็น 'Graduate'
ตัวอย่าง - คำสั่งที่ไม่มีเงื่อนไข ELSE
เนื่องจาก ELSE ไม่จำเป็น คำสั่งนี้อาจขาดส่วน ELSE
DECLARE @nhanvien_salary INT;
SET @nhanvien_salary = 15000000;
IF @nhanvien_salary < 10000000
PRINT 'Graduate';
GO
ในคำสั่งนี้ โปรแกรมจะให้ผลลัพธ์หากตัวแปร @nhanvien_salary น้อยกว่า 10,000,000
ตัวอย่าง - คำสั่ง IF...ELSE 巢狀 (Nested)
เนื่องจากเราไม่สามารถเขียนเงื่อนไข ELSE IF ใน SQL Server ได้เหมือนภาษาอื่น จึงต้องใช้คำสั่ง IF...ELSE 巢狀หลายชั้นเพื่อให้ได้ผลลัพธ์ที่ต้องการ
DECLARE @nhanvien_salary INT;
SET @nhanvien_salary = 15000000;
IF @nhanvien_salary > 12000000
PRINT 'Detective doc';
ELSE
BEGIN
IF @nhanvien_salary > 10000000
PRINT 'Truong phong';
ELSE
PRINT 'Graduate';
END;
GO
ตัวอย่างนี้ทำความเข้าใจว่า หากเงินเดือนมากกว่า 12 ล้าน ผลลัพธ์จะเป็น 'Detective doc' มิฉะนั้นเงื่อนไขนี้จะดำเนินต่อไปยังเงื่อนไขที่ 2 หากเงินเดือนมากกว่า 10 ล้าน ผลลัพธ์จะเป็น 'Truong phong' กรณีอื่นๆ จะเป็น 'Graduate'