Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL Server

คำสั่ง IF...ELSE ใน SQL Server

เช่นเดียวกับภาษาโปรแกรมมิ่งอื่นๆ SQL Server ก็มีคำสั่ง IF...ELSE บทความนี้จะอธิบายรายละเอียดไวยากรณ์และตัวอย่างชัดเจนเพื่อให้เข้าใจง่าย

คำอธิบาย

ใน SQL Server คำสั่ง IF...ELSE ใช้สำหรับดำเนินการตามเงื่อนไข หากเงื่อนไขเป็นจริง จะดำเนินการคำสั่งนั้น หากเป็นเท็จ จะดำเนินการคำสั่งอื่น

ไวยากรณ์ของ IF...ELSE

การใช้งานคำสั่ง IF...ELSE ใน SQL Server มีรูปแบบดังนี้:

IF dieukien
{. คำสั่งที่ดำเนินการเมื่อเงื่อนไขเป็น TRUE .}

[ELSE
{. คำสั่งที่ดำเนินการเมื่อเงื่อนไขเป็น FALSE .}]

หมายเหตุ:

  1. ELSE ไม่จำเป็น คุณจะใช้เงื่อนไข ELSE เมื่อต้องการดำเนินการชุดคำสั่งที่เงื่อนไข IF ประเมินเป็น FALSE (คือเงื่อนไขไม่เป็นจริง)
  2. ไม่มีเงื่อนไข ELSE IF ในคำสั่ง IF...ELSE แทนที่จะต้องใช้คำสั่ง IF...ELSE 巢狀 (nested) หลายชั้นเพื่อให้ได้ผลลัพธ์ที่ต้องการ

โครงสร้าง IF...ELSE

คำสั่ง IF...ELSE ใน SQL Server

ตัวอย่าง - คำสั่ง 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'