sql 中 case when 语法(转)

sql语言中有没有类似C语言中的switch case的语句??

  没有,用case   when   来代替就行了.   
       
  例如,下面的语句显示中文年月  
   
  select   getdate()   as   日期,case   month(getdate())  
  when   11   then   '十一'  
  when   12   then   '十二'  
  else   substring('一二三四五六七八九十',   month(getdate()),1)  
  end+'月'   as   月份

=================================================

CASE 可能是 SQL 中被误用最多的关键字之一。虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法。例如,你可以在 WHERE 子句中使用 CASE
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁 首先让我们看一下
CASE 的语法。在一般的 SELECT 中,其语法如下:
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁
SELECT < myColumnSpec > =
sql 中 case when 
语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
CASE
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
WHEN < A > THEN < somethingA >
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁
WHEN < B > THEN < somethingB >
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁
ELSE < somethingE >
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁
END
sql 中 case when
 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁 在上面的代码中需要用具体的参数代替尖括号中的内容。下面是一个简单的例子:
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁
USE pubs
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
GO
sql 中 case when 
语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
SELECT
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁      Title,
sql 中 case when 
语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁     
' Price Range ' =
sql 中 case when 
语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁     
CASE
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁         
WHEN price IS NULL THEN ' Unpriced '
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁         
WHEN price < 10 THEN ' Bargain '
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁         
WHEN price BETWEEN 10 and 20 THEN ' Average '
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁         
ELSE ' Gift to impress relatives '
sql 中 case when 
语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁     
END
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
FROM titles
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
ORDER BY price
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 
钱途无梁
GO
sql 中 case when 
语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁 这是
CASE 的典型用法,但是使用 CASE 其实可以做更多的事情。比方说下面的 GROUP BY 子句中的 CASE
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁
SELECT ' Number of Titles ' , Count ( * )
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
FROM titles
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
GROUP BY
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁     
CASE
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁         
WHEN price IS NULL THEN ' Unpriced '
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁         
WHEN price < 10 THEN ' Bargain '
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁         
WHEN price BETWEEN 10 and 20 THEN ' Average '
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁         
ELSE ' Gift to impress relatives '
sql 中 case when 
语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁     
END
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
GO
sql 中 case when 
语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁 你甚至还可以组合这些选项,添加一个
ORDER BY 子句,如下所示:
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁
USE pubs
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
GO
sql 中 case when 
语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
SELECT
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁     
CASE
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁         
WHEN price IS NULL THEN ' Unpriced '
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁         
WHEN price < 10 THEN ' Bargain '
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁         
WHEN price BETWEEN 10 and 20 THEN ' Average '
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁         
ELSE ' Gift to impress relatives '
sql 中 case when 
语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁     
END AS Range,
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 
钱途无梁      Title
sql 中 case when 
语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
FROM titles
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
GROUP BY
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁     
CASE
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁         
WHEN price IS NULL THEN ' Unpriced '
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁         
WHEN price < 10 THEN ' Bargain '
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁         
WHEN price BETWEEN 10 and 20 THEN ' Average '
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁         
ELSE ' Gift to impress relatives '
sql 中 case when 
语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁     
END ,
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁      Title
sql 中 case when 
语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
ORDER BY
sql 中 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁     
CASE
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁         
WHEN price IS NULL THEN ' Unpriced '
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁         
WHEN price < 10 THEN ' Bargain '
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁         
WHEN price BETWEEN 10 and 20 THEN ' Average '
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁         
ELSE ' Gift to impress relatives '
sql 中 case when 
语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁     
END ,
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁      Title
sql 中 case when 
语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
GO
sql 中 case when 
语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁 注意,为了在
GROUP BY 块中使用 CASE ,查询语句需要在 GROUP BY 块中重复 SELECT 块中的 CASE 块。
sql 中
 case when 语法在这里添加日志标题 - 钱途无梁 - Notebook of 钱途无梁
sql 中 case when 语法在这里添加日志标题 -
 钱途无梁 - Notebook of 钱途无梁 除了选择自定义字段之外,在很多情况下
CASE 都非常有用。再深入一步,你还可以得到你以前认为不可能得到的分组排序结果集。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值