探讨SQL Server中Case 的不同用法

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:
< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客CASE 可能是 SQL 中被误用最多的关键字之一。虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法。例如,你可以在 WHERE 子句中使用 CASE。
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 首先让我们看一下 CASE 的语法。在一般的 SELECT 中,其语法如下:
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 SELECT <myColumnSpec> =
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 CASE
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 WHEN <A> THEN <somethingA>
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 WHEN <B> THEN <somethingB>
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 ELSE <somethingE>
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 END
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 在上面的代码中需要用具体的参数代替尖括号中的内容。下面是一个简单的例子:
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 USE pubs
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 GO
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 SELECT
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客      Title,
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客     'Price Range' =
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客     CASE
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         WHEN price IS NULL THEN 'Unpriced'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         WHEN price < 10 THEN 'Bargain'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         WHEN price BETWEEN 10 and 20 THEN 'Average'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         ELSE 'Gift to impress relatives'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客     END
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 FROM titles
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 ORDER BY price
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 GO
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 这是 CASE 的典型用法,但是使用 CASE 其实可以做更多的事情。比方说下面的 GROUP BY 子句中的 CASE:
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 SELECT 'Number of Titles', Count(*)
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 FROM titles
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 GROUP BY
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客     CASE
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         WHEN price IS NULL THEN 'Unpriced'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         WHEN price < 10 THEN 'Bargain'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         WHEN price BETWEEN 10 and 20 THEN 'Average'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         ELSE 'Gift to impress relatives'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客     END
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 GO
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 你甚至还可以组合这些选项,添加一个 ORDER BY 子句,如下所示:
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 USE pubs
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 GO
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 SELECT
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客     CASE
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         WHEN price IS NULL THEN 'Unpriced'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         WHEN price < 10 THEN 'Bargain'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         WHEN price BETWEEN 10 and 20 THEN 'Average'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         ELSE 'Gift to impress relatives'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客     END AS Range,
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客      Title
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 FROM titles
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 GROUP BY
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客     CASE
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         WHEN price IS NULL THEN 'Unpriced'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         WHEN price < 10 THEN 'Bargain'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         WHEN price BETWEEN 10 and 20 THEN 'Average'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         ELSE 'Gift to impress relatives'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客     END,
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客      Title
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 ORDER BY
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客     CASE
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         WHEN price IS NULL THEN 'Unpriced'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         WHEN price < 10 THEN 'Bargain'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         WHEN price BETWEEN 10 and 20 THEN 'Average'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客         ELSE 'Gift to impress relatives'
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客     END,
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客      Title
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 GO
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 注意,为了在 GROUP BY 块中使用 CASE,查询语句需要在 GROUP BY 块中重复 SELECT 块中的 CASE 块。
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 
探讨SQL Server中Case 的不同用法 - netcorner - netcorner的博客 除了选择自定义字段之外,在很多情况下 CASE 都非常有用。再深入一步,你还可以得到你以前认为不可能得到的分组排序结果集。
转自:  http://www.g22.net/Article/Show.asp?ID=688


本文转自 netcorner 博客园博客,原文链接:http://www.cnblogs.com/netcorner/archive/2008/10/21/2912099.html    ,如需转载请自行联系原作者

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
23小时前
|
SQL 存储 数据库连接
LabVIEW与SQL Server 2919 Express通讯
LabVIEW与SQL Server 2919 Express通讯
|
1天前
|
SQL Windows
安装SQL Server 2005时出现对性能监视器计数器注册表值执行系统配置检查失败的解决办法...
安装SQL Server 2005时出现对性能监视器计数器注册表值执行系统配置检查失败的解决办法...
11 4
|
2天前
|
SQL 数据可视化 Oracle
这篇文章教会你:从 SQL Server 移植到 DM(上)
这篇文章教会你:从 SQL Server 移植到 DM(上)
|
2天前
|
SQL 关系型数据库 数据库
SQL Server语法基础:入门到精通
SQL Server语法基础:入门到精通
SQL Server语法基础:入门到精通
|
2天前
|
SQL 存储 网络协议
SQL Server详细使用教程
SQL Server详细使用教程
23 2
|
2天前
|
SQL 存储 数据库连接
C#SQL Server数据库基本操作(增、删、改、查)
C#SQL Server数据库基本操作(增、删、改、查)
5 0
|
3天前
|
SQL 存储 小程序
数据库数据恢复—Sql Server数据库文件丢失的数据恢复案例
数据库数据恢复环境: 5块硬盘组建一组RAID5阵列,划分LUN供windows系统服务器使用。windows系统服务器内运行了Sql Server数据库,存储空间在操作系统层面划分了三个逻辑分区。 数据库故障: 数据库文件丢失,主要涉及3个数据库,数千张表。数据库文件丢失原因未知,不能确定丢失的数据库文件的存放位置。数据库文件丢失后,服务器仍处于开机状态,所幸未写入大量数据。
数据库数据恢复—Sql Server数据库文件丢失的数据恢复案例
|
3天前
|
SQL 存储 关系型数据库
SQL Server详细使用教程及常见问题解决
SQL Server详细使用教程及常见问题解决
|
4天前
|
SQL 安全 数据库
SQL Server 备份和还原
SQL Server 备份和还原
|
4天前
|
SQL 存储 安全
SQL Server 权限管理
SQL Server 权限管理