--- title: SQL利用Case When Then多條件 tags: helper,SQL 的where,open description: --- > [name=Jiesen] [time=Sun, 20210915 ] [color=#907bf7] [TOC] # 前言 有一個需求 A與B欄位 當B欄位等於空或null時 那麼B欄位就放A欄位的資料 # SQL if 語法範列 有兩種寫法 ## 簡單Case函數 ```sql= --簡單Case函數 CASE sex WHEN ‘1‘ THEN ‘男‘--如果sex等於1 值就等於男 WHEN ‘2‘ THEN ‘女‘--如果sex等於2 值就等於女 ELSE ‘其他‘ END -- ``` ## CASE WHEN 布林值 THEN ```sql= --CASE WHEN 結果要是布林 THEN CASE WHEN sex = ‘1‘ THEN ‘男‘--如果sex等於1 值就等於男 WHEN sex = ‘2‘ THEN ‘女‘ ELSE ‘其他‘ END ``` ## 最後選擇解法 我選擇 CASE WHEN 結果要是布林 THEN 這種解法 原因是才能判斷null ```sql= SELECT --當INVENTORY_NAME是null時 =INVENTORY_NO --CASE WHEN 布林值 THEN CASE WHEN INVENTORY_NAME IS NULL THEN INVENTORY_NO WHEN INVENTORY_NAME='' THEN INVENTORY_NO ELSE INVENTORY_NAME END as 'INVENTORY_NAME' FROM TableName ``` # 參考網站 [1keydata](https://www.1keydata.com/tw/sql/sql-case.html) [SQL利用Case When Then多條件](https://www.itread01.com/content/1509445229.html)