[TOC]
>[success] ## if:函數
> expr1如果條件成立返回,expr1
> expr2如果條件不成立,返回expr2
:-: 
```sql
SELECT IF(10 > 5,'大于','小于');
SELECT IF(10 < 5,'大于','小于');
```
結果:
           大于
           小于
<br>
```sql
SELECT
first_name,
commission_pct,
IF
(commission_pct IS NULL,'沒獎金 難過','有獎金 哈哈哈哈') 備注
FROM
gin_employees;
```
```sql
Steven 沒獎金 難過
Neena 沒獎金 難過
Lex 沒獎金 難過
Alexander 沒獎金 難過
Bruce 沒獎金 難過
David 沒獎金 難過
Valli 沒獎金 難過
Diana 沒獎金 難過
Nancy 沒獎金 難過
Daniel 沒獎金 難過
John 沒獎金 難過
Ismael 沒獎金 難過
Jose Manuel 沒獎金 難過
Luis 沒獎金 難過
Den 沒獎金 難過
Alexander 沒獎金 難過
Shelli 沒獎金 難過
Sigal 沒獎金 難過
Guy 沒獎金 難過
Karen 沒獎金 難過
Matthew 沒獎金 難過
Adam 沒獎金 難過
Payam 沒獎金 難過
Shanta 沒獎金 難過
Kevin 沒獎金 難過
Julia 沒獎金 難過
Irene 沒獎金 難過
James 沒獎金 難過
Steven 沒獎金 難過
Laura 沒獎金 難過
Mozhe 沒獎金 難過
James 沒獎金 難過
TJ 沒獎金 難過
Jason 沒獎金 難過
Michael 沒獎金 難過
Ki 沒獎金 難過
Hazel 沒獎金 難過
Renske 沒獎金 難過
Stephen 沒獎金 難過
John 沒獎金 難過
Joshua 沒獎金 難過
William 0.15 有獎金 哈哈哈哈
Elizabeth 0.15 有獎金 哈哈哈哈
Sundita 0.10 有獎金 哈哈哈哈
Michael 沒獎金 難過
Pat 沒獎金 難過
Susan 沒獎金 難過
Hermann 沒獎金 難過
Shelley 沒獎金 難過
William 沒獎金 難過
```
<br>
<br>
>[success] ## case:函數寫法1
> case函數類似于java中的switch
case語法:
```sql
case 要判斷的字段或表達式
when常量1 then要顯示的值1或語句1;
when 常量2 then 要顯示的值2或語句2;
else 要顯示的值n或語句n;
end
```
### **case-案例1:**
查詢員工的工資,要求
部門號=30,顯示的工資為1.1倍
部門號=40,顯示的工資為1.2倍
部門號=50,顯示的工資為1.3倍
其他部門,顯示的工資為原工資
```sql
SELECT
salary,
department_id,
CASE
department_id
WHEN 30 THEN
salary * 1.1
WHEN 40 THEN
salary * 1.2
WHEN 50 THEN
salary * 1.3
WHEN 60 THEN
salary * 1.4 ELSE salary
END AS 新工資
FROM
gin_employees;
```
<br>
<br>
## **case-函數寫法2:**
case語法
```sql
case. I
when條件1 then 要顯示的值1或語句1
when條件2 then 要顯示的值2或語句2
else要顯示的值n或語句n
end .
```
<br>
### case-案例1:
查詢員工的工資的情況
如果工資>20000,顯示A級別.
如果工資>15000,顯示B級別
如果工資>10000,顯示c級別
否則,顯示D級別
```sql
SELECT salary,
case
when salary > 20000 then 'A級別'
when salary > 15000 then 'B級別'
when salary > 10000 then 'C級別'
else 'D級別'
end as '工資級別'
from gin_employees;
```