ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] >[success] ## if:函数 > expr1如果条件成立返回,expr1 > expr2如果条件不成立,返回expr2 :-: ![](https://img.kancloud.cn/5c/d4/5cd45fbba97785688b1537131cf4aaf2_447x60.png) ```sql SELECT IF(10 > 5,'大于','小于'); SELECT IF(10 < 5,'大于','小于'); ``` 结果: &ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;大于 &ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;小于 <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; ```