sql语言中有没有类似C语言中的switch case的语句??
来源:互联网 发布:斗鱼大官人淘宝店网址 编辑:程序博客网 时间:2024/04/30 12:40
例如,下面的语句显示中文年月
select getdate() as 日期,case month(getdate())
when 11 then '十一'
when 12 then '十二'
else substring('一二三四五六七八九十', month(getdate()),1)
end+'月' as 月份
=================================================
CASE 可能是 SQL 中被误用最多的关键字之一。虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法。例如,你可以在WHERE 子句中使用CASE。
首先让我们看一下CASE 的语法。在一般的SELECT 中,其语法如下:
SELECT<myColumnSpec>=
CASE
WHEN<A>THEN <somethingA>
WHEN<B>THEN <somethingB>
ELSE<somethingE>
END
在上面的代码中需要用具体的参数代替尖括号中的内容。下面是一个简单的例子:
USE pubs
GO
SELECT
Title,
'Price Range' =
CASE
WHEN price IS NULL THEN'Unpriced'
WHEN price < 10THEN 'Bargain'
WHEN price BETWEEN10and 20THEN 'Average'
ELSE'Gift to impress relatives'
END
FROM titles
ORDERBY price
GO
这是CASE 的典型用法,但是使用CASE 其实可以做更多的事情。比方说下面的GROUP BY 子句中的 CASE:
SELECT'Number of Titles',Count(*)
FROM titles
GROUPBY
CASE
WHEN price IS NULL THEN'Unpriced'
WHEN price < 10THEN 'Bargain'
WHEN price BETWEEN10and 20THEN 'Average'
ELSE'Gift to impress relatives'
END
GO
你甚至还可以组合这些选项,添加一个ORDER BY 子句,如下所示:
USE pubs
GO
SELECT
CASE
WHEN price IS NULL THEN'Unpriced'
WHEN price < 10THEN 'Bargain'
WHEN price BETWEEN10and 20THEN 'Average'
ELSE'Gift to impress relatives'
ENDAS Range,
Title
FROM titles
GROUPBY
CASE
WHEN price IS NULL THEN'Unpriced'
WHEN price < 10THEN 'Bargain'
WHEN price BETWEEN10and 20THEN 'Average'
ELSE'Gift to impress relatives'
END,
Title
ORDERBY
CASE
WHEN price IS NULL THEN'Unpriced'
WHEN price < 10THEN 'Bargain'
WHEN price BETWEEN10and 20THEN 'Average'
ELSE'Gift to impress relatives'
END,
Title
GO
注意,为了在GROUP BY 块中使用 CASE,查询语句需要在GROUP BY 块中重复 SELECT 块中的CASE 块。
除了选择自定义字段之外,在很多情况下CASE 都非常有用。再深入一步,你还可以得到你以前认为不可能得到的分组排序结果集。
原文载于:http://www.cnblogs.com/qiantuwuliang/archive/2009/06/03/1495770.html
- sql语言中有没有类似C语言中的switch case的语句??
- c语言中的switch case语句
- C语言中switch case语句的实现
- C语言中switch case语句的实现
- C语言中switch-case语句的使用
- 【C语言】switch..case语句
- sql中类似switch case语句的用法
- sql中类似switch case语句的用法
- python语言没有switch-case语句
- C语言switch case 语句中能否使用continue 关键字?
- C语言switch case语句中定义变量问题
- C语言中switch case语句的实现(switch case 和 else if 的比较、区别)
- C语言基础 之 switch-case语句
- C语言中break在switch-case中的作用
- C语言之switch case语句 case 中没有break时会继续执行下一个case无论条件是否满足都会执行
- C语言中的switch语句
- C语言中的switch case比较
- C语言中switch语句的思考
- MYSQL到ORACLE程序迁移的注意事项
- python日期时间字符串转换成unix时间戳
- ststic_cast,const_cast,dynamic_cast区别使用
- Spring AOP用到的切面,通知例子
- 遇到 arcsde server启动不起来 或是arcserver 许可装不起来
- sql语言中有没有类似C语言中的switch case的语句??
- inotify监控linux系统下的目录变化
- short s=1,s=s+1.报错;short s=1,s+=1.不报错????
- 用Jquery获取checkbox多个选项
- poj 1338 Ugly Numbers
- 交叉编译arm下的gdb
- javascript跨Iframe遮罩层.(IE6 IE7 IE8 FF测试通过)
- 多线程同步
- javascript checkbox树