30. SQL Server学习日记 - 搜寻CASE运算式

一、搜寻CASE运算式

语法 :

CASE  WHEN <判断式1>  THEN  <回应结果1>      WHEN <判断式2>  THEN  <回应结果2>  WHEN <判断式3>  THEN  <回应结果3>  ……  ELSE  <回应结果>END

说明 :
 从判断WHERE子句中的<判断式>开始,即判断真伪值,
→若结果为真值(TRUE),则回传至THEN子句的<回应结果>,
→若结果为非真值(FALSE),则移至下一个WHERE子句再来判断,
→若全部WHEN子句皆不为真,则回传ELSE回应结果,
→END结束全部过程 (最后的END不能省略)

<< 接下来使用这个资料表 >>
http://img2.58codes.com/2024/20163415peh3awUeFL.png

Ex1 : 使用CASE运算式将早餐分类分别加上A、B、C字串

SELECT food_name,CASE WHEN food_catalg = '热食' THEN 'A:'+ food_catalg  WHEN food_catalg = '炸物' THEN  'B:'+food_catalg WHEN food_catalg = '饮料' THEN  'C:'+ food_catalg ELSE NULL END AS ABCFROM food

执行结果
http://img2.58codes.com/2024/20163415xKxoSzB2vg.png

二、CASE运算式可以写入的位置

说明 : 由于CASE属于运算式,所以所有可以写入运算式的位置,都可以写入CASE运算式,下面会介绍使用CASE运算式将SELECT叙述的结果由纵向转横向

Ex2 : 使用CASE运算式将SELECT叙述的结果由纵向转横向

SELECT SUM(CASE WHEN food_catalg = '热食'THEN buy_price ELSE 0 END) AS sum_热食,SUM(CASE WHEN food_catalg = '炸物'THEN buy_price ELSE 0 END) AS sum_炸物,SUM(CASE WHEN food_catalg = '饮料'THEN buy_price ELSE 0 END) AS sum_饮料FROM food;

执行结果
http://img2.58codes.com/2024/20163415klR2sgzBVf.png

Ex3 : GROUP BY子句无法做到纵向转横向

SELECT food_catalg,   SUM(buy_price) AS sum_priceFROM foodGROUP BY food_catalg;

执行结果
http://img2.58codes.com/2024/20163415ozwVcOjLJX.png


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章