IF() 函數 (SQL IF() Function)

IF() 函數用於根據條件返回不同的值,類似程式語言中的三元運算子。

MySQL IF() 語法

IF(condition, value_if_true, value_if_false)

當 condition 為真時返回 value_if_true,否則返回 value_if_false。

MySQL IF() 用法範例 (Example)

假設我們有一個 products 資料表:

P_IdP_NameStock
1LCD100
2CPU0
3RAM50

我們可以用 IF() 來標示庫存狀態:

SELECT P_Name, Stock,
       IF(Stock > 0, '有庫存', '已售完') AS Status
FROM products;

查詢結果:

P_NameStockStatus
LCD100有庫存
CPU0已售完
RAM50有庫存

巢狀 IF()

IF() 函數可以巢狀使用來處理多重條件:

SELECT P_Name, Stock,
       IF(Stock > 50, '充足',
          IF(Stock > 0, '偏低', '已售完')) AS Status
FROM products;

查詢結果:

P_NameStockStatus
LCD100充足
CPU0已售完
RAM50偏低
對於複雜的多重條件判斷,建議改用 CASE 語法,可讀性會更好。

SQL Server 的 IIF()

SQL Server 2012 以後版本提供 IIF() 函數,用法與 MySQL 的 IF() 相同:

SELECT P_Name, IIF(Stock > 0, '有庫存', '已售完') AS Status
FROM products;

SQL Server 的 IF...ELSE

SQL Server 也有用於流程控制的 IF...ELSE 語句,用於預存程序或批次處理中:

IF condition
BEGIN
    -- 條件為真時執行的語句
END
ELSE
BEGIN
    -- 條件為假時執行的語句
END