目錄
Toggle什麼是 SQL IIF 函數?
SQL IIF 函數是一個條件函數,類似於大多數編程語言中的 if-else 語句。在 SQL Server 中,IIF 函數允許在語句中根據特定條件選擇兩個值之一。這個函數使得編寫簡單的條件邏輯變得更加方便和可讀。
IIF 函數的語法
IIF 函數的基本語法如下:
IIF (boolean_expression, true_value, false_value)
其中:
- boolean_expression:一個返回布爾值的任何有效的表達式。
- true_value:當 boolean_expression 為
TRUE
時返回的值。 - false_value:當 boolean_expression 為
FALSE
時返回的值。
IIF 函數的基本使用範例
案例 1:簡單條件判斷
假設我們有一個包含員工基本信息的表格 Employees
,包括員工姓名和工資。我們希望根據工資來標識高薪和低薪員工。
SELECT
EmployeeName,
Salary,
IIF(Salary > 5000, '高薪', '低薪') AS SalaryCategory
FROM
Employees;
在這個範例中,如果員工的工資大於 5000,則 SalaryCategory
列顯示 “高薪”,否則顯示 “低薪”。
案例 2:日期比較
我們有一個表格 Orders
,包含訂單日期和交貨日期。我們希望知道每個訂單是否已經延遲交貨。
SELECT
OrderID,
OrderDate,
DeliveryDate,
IIF(DeliveryDate > OrderDate, '延遲', '準時') AS DeliveryStatus
FROM
Orders;
在這個範例中,如果 DeliveryDate
大於 OrderDate
,則 DeliveryStatus
顯示 “延遲”,否則顯示 “準時”。
IIF 函數的進階使用
使用嵌套 IIF 函數
我們可以將 IIF 函數嵌套在一起來處理多種條件。例如,在一個考生成績的表格中,我們可以根據成績給出評級。
SELECT
StudentName,
Score,
IIF(Score >= 90, 'A',
IIF(Score >= 80, 'B',
IIF(Score >= 70, 'C',
IIF(Score >= 60, 'D', 'F')
)
)
) AS Grade
FROM
Students;
在這個範例中,根據學生的分數給出不同的評級:90 分及以上是 “A”,80 到 89 分是 “B”,70 到 79 分是 “C”,60 到 69 分是 “D”,低於 60 分則是 “F”。
IIF 與其他 SQL 函數結合使用
IIF 函數也可以和其他 SQL 函數結合使用來實現更複雜的邏輯。例如,我們可以使用 IIF 函數來處理 NULL 值。
SELECT
ProductName,
UnitsInStock,
IIF(UnitsInStock IS NULL, '缺貨', '有貨') AS StockStatus
FROM
Products;
在這個範例中,當 UnitsInStock
列的值為 NULL 時,StockStatus
顯示 “缺貨”,否則顯示 “有貨”。
總結
SQL IIF 函數提供了一種簡單且高效的方法來執行條件判斷。通過熟練使用 IIF 函數,可以大大簡化 SQL 查詢中的邏輯判斷,提高查詢的可讀性和維護性。