ryxxlong的博客 Sql server 中的 CASE 语句文章, 链接 http://ryxxlong.iteye.com/blog/531221 写的比较详细,具体内容如下,主要用于自己以后方便查询 CASE 具有两种式: Simple CASE function: CASE input_expression WHEN when_expression THEN result_ex

ryxxlong的博客Sql

server 中的 CASE 语句文章,

链接http://ryxxlong.iteye.com/blog/531221

写的比较详细,具体内容如下,主要用于自己以后方便查询

CASE 具有两种格式:

Simple CASE function: CASE input_expression

WHEN when_expression THEN result_expression

[ ...n ]

[

ELSE else_result_expression

]

END

Searched CASE function:

CASE

WHEN Boolean_expression THEN result_expression

[ ...n ]

[

ELSE else_result_expression

]

END

A. 使用带有简单 CASE 函数的 SELECT 语句

在 SELECT 语句中,简单 CASE 函数仅检查是否相等,而不进行其他比较。以下示例使用 CASE 函数更改产品系列类别的显示,以使这些类别更易理解。

USE AdventureWorks;

GO

SELECT ProductNumber, Category =

CASE ProductLine

WHEN 'R' THEN 'Road'

WHEN 'M' THEN 'Mountain'

WHEN 'T' THEN 'Touring'

WHEN 'S' THEN 'Other sale items'

ELSE 'Not for sale'

END,

Name

FROM Production.Product

ORDER BY ProductNumber;

GO

B. 使用带有简单 CASE 函数和 CASE 搜索函数的 SELECT 语句

在 SELECT 语句中,CASE 搜索函数允许根据比较值在结果集内对值进行替换。下面的示例根据产品的价格范围将标价显示为文本注释。

USE AdventureWorks;

GO

SELECT ProductNumber, Name, 'Price Range' =

CASE

WHEN ListPrice = 0 THEN 'Mfg item - not for resale'

WHEN ListPrice < 50 THEN 'Under $50'

WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250'

WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000'

ELSE 'Over $1000'

END

FROM Production.Product

ORDER BY ProductNumber ;

GO

以上内容来自Sql server 2005帮助文档

其他Case语句实例:

USE pubs

GO

SELECT

Title,

'Price Range' =

CASE

WHEN price IS NULL THEN 'Unpriced'

WHEN price < 10 THEN 'Bargain'

WHEN price BETWEEN 10 and 20 THEN 'Average'

ELSE 'Gift to impress relatives'

END

FROM titles

ORDER BY price

GO

这是 CASE 的典型用法,但是使用 CASE 其实可以做更多的事情。比方说下面的 GROUP BY 子句中的 CASE:

SELECT 'Number of Titles', Count(*)

FROM titles

GROUP BY

CASE

WHEN price IS NULL THEN 'Unpriced'

WHEN price < 10 THEN 'Bargain'

WHEN price BETWEEN 10 and 20 THEN 'Average'

ELSE 'Gift to impress relatives'

END

GO

你甚至还可以组合这些选项,添加一个 ORDER BY 子句,如下所示:

USE pubs

GO

SELECT

CASE

WHEN price IS NULL THEN 'Unpriced'

WHEN price < 10 THEN 'Bargain'

WHEN price BETWEEN 10 and 20 THEN 'Average'

ELSE 'Gift to impress relatives'

END AS Range,

Title

FROM titles

GROUP BY

CASE

WHEN price IS NULL THEN 'Unpriced'

WHEN price < 10 THEN 'Bargain'

WHEN price BETWEEN 10 and 20 THEN 'Average'

ELSE 'Gift to impress relatives'

END,

Title

ORDER BY

CASE

WHEN price IS NULL THEN 'Unpriced'

WHEN price < 10 THEN 'Bargain'

WHEN price BETWEEN 10 and 20 THEN 'Average'

ELSE 'Gift to impress relatives'

END,

Title

GO

注意,为了在 GROUP BY 块中使用 CASE,查询语句需要在 GROUP BY 块中重复 SELECT 块中的 CASE 块。

这部分内容来自: http://database.ctocio.com.cn/tips/76/7000576.shtml

注意:Simple CASE Function不能用来判断null值.

如果 case 表达式1 null then 0 else 表达式2, 它永远是执行表达式2,即使表达式1的值是null

应该这样写: case when 表达式1 is null then 0 else 表达式,

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

mysql能用case嵌套sql吗,关于sqlserver中查询语句中嵌套case语句使用方法相关推荐

  1. MySQL中查询字段为空或者为null方法

    MySQL中查询字段为空或者为null方法 判断为null select * from table where column is null; 不为null: select * from table ...

  2. MySQL数据库-笔记06【SQL的4种连接查询、事务】

    学习地址:一天学会 MySQL 数据库      MySQL安装教程      MySQL专栏

  3. mysql 查询记录成纵向_Mysql中查询(数据库中的)纵向转(查询结果显示为)横向.

    1.在mysql环境,创建数据库表, create table test_data1(id int, name VARCHAR(20), day VARCHAR(20)) 2.插入测试数据, inse ...

  4. java删除mysql 数据库语句怎么写_怎么用JAVA语句在Mysql中查询,添加,删除语句,说的详细点,谢谢!...

    展开全部 创建一个java project:对着project右键62616964757a686964616fe59b9ee7ad9431333264633564->属性 然后就 如图所示:导入 ...

  5. python查询sqlserver视图_如题:sqlserver连接Oracle数据库,在sql查询分析器中查询oracle中的视图,根据时间字段查询,SQL语句...

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  6. 写MySQL存储过程实现动态执行SQL

    写MySQL存储过程实现动态执行SQL --存储过程名和参数,参数中in表示传入参数,out标示传出参数,inout表示传入传出参数create procedure p_procedurecode(i ...

  7. 使用MYSQL命令直接导入导出SQL文件

    1.MYSQL中将数据库导出成SQL文件 其实很简单的,就是一条语句就可以了,首先我们打开cmd,不用进mysql指令界面,直接按照下列格式将导出语句敲进去,然后再输入密码即可了: mysqldump ...

  8. escape在sql语句中的作用

    1.escape的中文翻译如下图: 所以当escape用在sql语句中的意思就是使escape后的字符失效,变成个特殊字符来处理. 2.例如:sql语句如下: select * from tableA ...

  9. SQL学习03-SMSS及VB查询数据库基础

    一.在VBA. VB6中查询数据库中所有实例名称 Set conn = CreateObject("ADODB.Connection") '连接本机SQL conn.Connect ...

最新文章

  1. 收藏 | 12个ggplot2拓展程序助你强化R可视化
  2. eclipse如何连接mysql_Python如何连接 MySQL?
  3. 《Linux菜鸟入门》认识linux系统
  4. Android---如何返回上一Activity
  5. TRUNCATE,DELETE,DROP的区别
  6. GridView中的格式化
  7. H5模板代码一键生成器
  8. Android APK反编译就这么简单 详解(附图)
  9. IE浏览器不能使用window.open()的解决方案
  10. 【BZOJ】5294: [Bjoi2018]二进制-动态DP线段树
  11. mysql实战45讲--- 22 mysql有那些”饮鸩止渴”提高性能的方法?
  12. Excel报表的导出
  13. Linux笔记 #06# 在VPS上自建Git服务
  14. sqlmap tamper mysql_Sqlmap Tamper大全(1)
  15. 人脸检测--传统方法
  16. android通知栏自定义软件,免root状态栏美化神器
  17. latex 分页_latex 排版 首页不会换页
  18. 【仙变3】牧仙记版VM一键端
  19. Hbase学习笔记(概念和搭建)
  20. 【机器学习系列】概率图模型第二讲:深入浅出有向图中的条件独立性和D划分

热门文章

  1. zend studio 远程调试 php
  2. 一个简单判等例子的深度分析
  3. (转帖)eclipse 下 搭建 django开发环境
  4. 利用 Numpy 进行矩阵相关运算
  5. Windows 32位程序在64位操作系统下运行
  6. c语言地理坐标存储 转发,纬度/经度坐标的2个列表之间的地理距离
  7. 2021北京高考一分一段成绩查询,2021北京高考总成绩一分一段表出炉
  8. php $globa作用是l,php 关键字global在定义变量中的作用
  9. java groovy jar包_如何将jar包包含在groovy脚本中?
  10. mysql画事实表_sql生成事实表数据库