⑴ 求详解sql的CASE函数语句含义
select 课程,
sum(case when 姓名='李四' then 成绩 end)as '李四',
sum(case when 姓名='张三' then 成绩 end)as '张三'
from table_2
group by 课程
--意思是:
查询结果按照“课程”、“李四的成绩”、“张三的成绩”显示出来,
其中“李四的成绩”计算方法是:
当姓名=李四,那么就计算将该行的成绩按照课程进行分类加总
“张三的成绩”计算方法是:
当姓名=张三,那么就计算将该行的成绩按照课程进行分类加总
select 姓名,
sum(case when 课程='语文' then 成绩 end)as '语文',
sum(case when 课程='数学' then 成绩 end)as '数学',
sum(case when 课程='英语' then 成绩 end)as '英语'
from table_2
group by 姓名
--类似的意思是:
查询结果按照“姓名”、“语文”、“数学”、“英语”按照姓名进行加总各科成绩显示出来,
其中“语文”成绩计算方法是:
当科目=语文,那么就计算将该行的成绩按照姓名进行分类加总
“数学”成绩计算方法是:
当科目=数学,那么就计算将该行的成绩按照姓名进行分类加总
“英语”成绩计算方法是:
当科目=英语,那么就计算将该行的成绩按照姓名进行分类加总
case when 条件 then 表达式1 else 表达式2 end
表示:当条件成立,则返回表达式1,否则返回表达式2.
因此:sum(case when 姓名='李四' then 成绩 end)as '李四', 表示如果姓名为李四,则加总计算成绩,列名为‘李四’
类似的楼主可以自己理解了。
⑵ SQL case 的判断
SQL数据存储中,所谓的空,有两种形式,具体如下:
1、NULL:这是真正意义上的空,假如字段名为col1,判断方法为:
1
CASE THEN col1 IS NULL WHEN '为空' ELSE '不为空' END
2、空白:这种是表示空白字符串,假如字段名为col1,判断方法为:
1
CASE THEN col1 = '' WHEN '为空' ELSE '不为空' END
⑶ sql语句case when什么意思
case when 就是case when
判断 case when 当满足条件 then 。。。
when ...... then
...
可以写很多种情况,直到结束
⑷ SQL CASE 判断语句
CASE when B2.ID=B1.ID then B2.YY else B3.YY end
⑸ SQL里if语句和case语句有什么区别吗哪个使用更高效就是查询更优化
if 是条件判断语句 不能在 查询语句中出现,case 是条件检索 可以再查询中出现
⑹ sql语句中,decode和case when语句的区别有哪些
case when 写起来更长但是更灵活,比如可以case when 列1>列2 ,而decode要实现这个功能要借用SIGN函数,因为DECODE只能判断具体值不能判断条件格式,decode(sign(列1-列2),1,‘’)效果等同如上,其他的基本等同。
还有decode有一个灵活的应用就是order by , order by decode(列1,字符,1,字符2,2)可以进行灵活的排序。
⑺ SQL中CASE的用法,请高手解答
table
a b c
select sum(case a where >1 then 1 else 0 end),sum(case b where >2 then 1 else 0 end) from table
可以这样用 统计a的值>1的结果和b的值>2的结果
⑻ 数据库中case语句和if语句的区别
SELECT
'Price
Category'
=
CASE
WHEN
price
IS
NULL
THEN
'Not
yet
priced'
WHEN
price
<
10
THEN
'Very
Reasonable
Title'
WHEN
price
>=
10
and
price
<
20
THEN
'Coffee
Table
Title'
ELSE
'Expensive
book!'
END
先说下,case要和end一块用。
从上面可以看出,case里用的是when
then
形式,从整个case
end来看,它是从自己的多个语句中择一输出结果。
如果是把when
看成if
,就好理解多了,if语句就像是筛子里的石子,而case
end就是筛子,只会允许一个符合它网眼大小的石头出去,并且会将这个石子打包成一个可用的表达式。
⑼ case when 条件和where 条件的区别
select * from 表 where 1=1 and (case when a=1 then a when 表.字段='asdfasdf' then b end)='值
ase when 变量a='provider' then 'cp.id' else {1} end
这就不是判断语句,这是赋值语句,where不能在后面
SQL code
?
1
2
3
4
SELECT CK.RESPERSON AS NAME
FROM CP_KPI_INFO_FY CK, CP_DIM_PROVIDER CP
WHERE CK.PROVIDERID = CP.ID
AND CP.ID = case when 变量a='provider' then 'cp.id' else '{1}' end;
⑽ sql中case的用法
case 列 when 值1 then 值2 --当列的值等于值1 就返回值2
when 值3 then 值4 --当列的值等于值3 就返回值4
end
case when 列=值1 then 值2 --当列的值等于值1 就返回值2
when 列=值3 then值4 --当列的值等于值3 就返回值4
end