SQL IIF 函數教學:條件式查詢的實用技巧

了解如何使用 SQL 中的 IIF 函數進行條件判斷。這個教學將展示 IIF 的基本語法和實例,幫助你在查詢中更靈活地處理數據。

讓資訊整合更靈活

記錄、協作、成長 — Notion帶來比Excel更靈活的工作方式!
免費使用

200+模板自動化工作流程

從數據到成果,只需一步 — 用Monday代替Excel,效率倍增!
免費使用

AI智能團隊協作

AI驅動的ClickUp超越Excel,讓工作更精準快速!
免費使用

什麼是 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 查詢中的邏輯判斷,提高查詢的可讀性和維護性。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *