注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

石蕴玉而山辉,水怀珠而川媚!

 
 
 

日志

 
 

SQL语句:swich case  

2011-07-14 14:46:25|  分类: 数据库入门 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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 都非常有用。再深入一步,你还可以得到你以前认为不可能得到的分组排序结果集。


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

  评论这张
 
阅读(1658)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017