请简要说明一下SQL中CASE表达式的用法

请简要说明一下SQL中CASE表达式的用法,第1张

select

(case when

to_char(sysdate,'day')

= '星期五' then 10000

when

to_char(sysdate,'day')

= '星期六' then 8000

else

5000

end) as Money

from dual

----------------------------------

DECLARE @var int;

CASE @var

WHEN 1 THEN 'var is 1'

WHEN 2 THEN 'var is 2'

ELSE 'var is not 1 or 2' END

     

--三列名称是name,from,to

select name,from,to,datediff(ss,from,to) from tb;

--

select name,

sum(case 

when getdate(from)<'2014-11-02' and getdate(to)>='2014-11-02' then datediff(ss,'2014-11-02 00:00:00',to) )

when getdate(from)='2014-11-02' and getdate(to)='2014-11-02' then datediff(ss,from,to)

when getdate(from)='2014-11-02' and getdate(to)>'2014-11-02' then datediff(ss,from,'2014-11-02 23:59:59') )

 )

 from tb

 group by name

可以是查询语句,但查询得到的结果必须是一个值,否则就会报你所得到的错误。你可以分别运行一下select lmlmmc from lm,nrk where lmlmbm=nrklmbm和select lmlmmc from lm,nrk where lmlmbm=substring(nrklmbm,1,2),我敢肯定其中至少有一条多于一条的记录。

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 '李四', 表示如果姓名为李四,则加总计算成绩,列名为‘李四’

类似的楼主可以自己理解了。

不能这么写。老老实实用if else 写吧

if (@outOrNot = 'all') then

begin

  select  from 

  where xxx In (0,1,2,3,4)

end

else if (@outOrNot = 'out') then

begin

 select  from 

 where xxx In (3) 

end

else if (@outOrNot = 'notOut') then

begin

 select  from 

 where xxx In (0,1,2,4)  

end

以上就是关于请简要说明一下SQL中CASE表达式的用法全部的内容,包括:请简要说明一下SQL中CASE表达式的用法、SQL中CASE控制语句用法、sql中case语句问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10185435.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存