查询语句中 case…when 的使用
case when 语句,用于计算条件列表并返回多个可能结果表达式之一。
通常用于将枚举值转换为通俗易懂的字符串,也可嵌套在聚合函数里。
例子
将 fruits 表中,查询出供应商和其对应提供的水果,且供应商查询结果需要做以下改变:
供应商 101 改为老李,102、103、104 改为老陈,105、106、107 改为老唐。
select case when s_id=101 then '老李' when s_id in (102,103,104) then '老陈' else '老唐' end as 供应商, f_name as '水果名字' from fruits;
纵表转横表
如何将
转成
?
select name as '姓名', sum(case course when '语文' then score else 0 end) as '语文', sum(case course when '数学' then score else 0 end) as '数学', sum(case course when '物理' then score else 0 end) as '物理' from couses_table group by name;
为什么要这样写呢?
且看分解:
select name as '姓名' from couses_table;
select name as '姓名', (case course when '语文' then score else 0 end) as '语文' from couses_table;
select name as '姓名', sum(case course when '语文' then score else 0 end) as '语文' from couses_table group by name;
如此类推,添加上数学和英语两列也是如此。
三个资料Q群下载不了也转发不了,先放这里Fine_tuning.zipLangChain.zipdata_clear.rar
在第一节基础上 更新了函数和执行顺序:实操了字符数函数、时间函数、字段截取函数、interval函数等,除最后顺序实操因未导入数据库,导致无法执行