---
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)