sql case 的使用方法有哪些?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql case 的使用方法有哪些?相关的知识,希望对你有一定的参考价值。

case when @i<@j then 1 when @i>@j then 2 else 3
是否等价于C#的
if (@i<@j)

1

else if (@i>@j)

2

else

3


如果不是的话,那要做那种效果该怎么做
我这里用的是sql2000 ,但是那种效果,不晓得是不是数据库有问题,或者不支持。

相当于一个函数,case var1 when value1 then result1 else result2 end 和case when boolexpression then result1 else result2 end 格式. 参考技术A case when.. then .. else.. end as ,是select语句取查询结果,为某条纪录的某个字段赋值用的;
c#的if..else结构,每个分支下应该是表达式,以;结尾。
case when语句比较容易理解,接近于自然语言:当满足某条件时,取某值;当满足另外条件时,取其他值。如:
select case when t.col='1' then '1' when t.col='2' then '2' when t.col in ('3','4') then '3' else '4' end as result from t_table t;
case when 也可以嵌套,但你要注意格式。
参考技术B 不明白姓名你要怎么算法,写个简单的

select 年级,count(语文) as 语文,count(数学) as 数学,count(英语) as 英语
from cj
where (case when @param='' then 1 else charindex(姓名,@param) end)>0
group by 年级
参考技术C 是的,你可以把下面代码拷贝到查询分析器,改变@i,@j的值运行看看效果:
declare @i int,
@j int
set @i=0
set @j=1
select case when @i<@j then 1 when @i>@j then 2 else 3 end as rst

SQL学习- case when then else

场景

当前有一张“学生成绩表”
需要查询有哪些学生及格,哪些不及格。

例子

create table StudentScore (
	name string,
	score int
);

INSERT INTO StudentScore VALUES
('AAA',32),
('BBB',58),
('CCC',62),
('DDD',92);

select查询

select name,
case 
when score >= 90 then '优秀'
when score >= 60 then '及格'
else '不及格'
end as test_result
FROM StudentScore;

结果

以上是关于sql case 的使用方法有哪些?的主要内容,如果未能解决你的问题,请参考以下文章

SQL学习- case when then else

SQL学习- case when then else

SQL学习- case when then else

SQL学习- case when then else

SQL 中 where 条件中 in 后面 加 CASE WHEN 语句 报错

SQL 使用 CASE 表达式有条件地选择行