SQL CASE WHEN用法
CASE 可能是 SQL 中被误用最多的关键字之一。虽然你可能以前用过这个关键字来创建字段,但是它还具有更多用法。例如,你可以在 WHERE 子句中使用 CASE 。

首先让我们看一下 CASE 的语法。在一般的 SELECT 中,其语法如下:

SELECT <</SPAN>myColumnSpec > =
CASE
WHEN <</SPAN>A > THEN <</SPAN>somethingA >
WHEN <</SPAN>B > THEN <</SPAN>somethingB >
ELSE <</SPAN>somethingE >
END

在上面的代码中需要用具体的参数代替尖括号中的内容。下面是一个简单的例子:

USE pubs
GO
SELECT
Title,
' Price Range ' =
CASE
WHEN price IS NULL THEN ' Unpriced '
WHEN price <</SPAN> 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 <</SPAN> 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 <</SPAN> 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 <</SPAN> 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 <</SPAN> 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 块。

除了选择自定义字段之外,在很多情况下 CASE 都非常有用。再深入一步,你还可以得到你以前认为不可能得到的分组排序结果集。

转载于:https://www.cnblogs.com/vibratea/archive/2009/07/24/1529869.html

SQL CASE WHEN用法相关推荐

  1. SQL case when 用法

    SQL case when 用法 主要是给变量赋值,将连续型变量离散化,主要用SQL中的CASE  WHEN 实例: create table table_name_new as   ----将时间离 ...

  2. 30. Spark SQL case when用法:

    30. Spark SQL case when用法: https://sparkbyexamples.com/spark-case-when-otherwise-example/ how to wri ...

  3. Sql case when 用法实例详解

    sql中case when还是比较常见的用法.经常会出现一段时间不用,相关写法与语法又记不太清楚的情况.干脆就记一下,以备不时之需. 1.准备数据 现在有一张表xxx,里面有一个字段叫basicinf ...

  4. 【SQL】SQL Case When用法

    简介 case when sql中计算条件列表,并返回多个可能的结果表达式之一. CASE 表达式有两种格式:1.CASE 简单表达式,它通过将表达式与一组简单的表达式进行比较来确定结果.2.CASE ...

  5. sql case when用法详解

    当我们需要从数据源上 直接判断数据显示代表的含义的时候 ,就可以在SQL语句中使用 Case When这个函数了. Case具有两种格式.简单Case函数和Case搜索函数. 第一种 格式 : 简单C ...

  6. 【Vegas原创】SQL case when 用法

    select form_no,cource,hbddept,empno,hbdcnm,substring(empno,1,4) as eDate,  case ctype  when '1' then ...

  7. SQL CASE 的用法

    对数据字段,根据结果进行别名 SQLServer SELECT [name],case when cj.chinese >80 then '优秀'when cj.chinese >=60 ...

  8. IsNull 和 SQL语句中CASE WHEN用法

    [转]IsNull 和 SQL语句中CASE WHEN用法收藏   [转]IsNull 和 SQL语句中CASE WHEN用法 1.ISNULL     使用指定的替换值替换   NULL.      ...

  9. SQL case when then 的用法

    sql case when then else end case具有两种格式.简单case函数和case搜索函数. --简单case函数 case sex when'1'then'男' when'2' ...

最新文章

  1. 注意 ExecuteNonQuery() 返回值
  2. python openpyxl读取excel_Python使用openpyxl读写excel文件
  3. iOS移除父控件中所有子控件的两种方式
  4. 面向对象编程的乐趣(TextBox.Text=)
  5. 网易NAPM Andorid SDK实现原理--转
  6. 糗事百科的网络爬虫(v0.2)源码及解析 .
  7. windows 7 PowerShell 笔记
  8. 【CyberSecurityLearning 64】SSRF
  9. linux - svn命令操作使用随笔svn import
  10. 漂亮表格的CSS定义
  11. JVM——三个ClassLoader详解
  12. centos tar安装mysql_centos系统通过tar.gz包安装mysql5.7.19
  13. 31 MM配置-采购-采购申请-采购申请审批策略-定义审批过程
  14. 全国计算机等级内容,全国计算机等级内容
  15. c语言字符串每个字母加4,C语言基础:各字符型数据
  16. Java中在时间戳计算的过程中遇到的数据溢出问题
  17. linux waitpid子进程,关于waitpid()函数的问题,为什么最后子进程没退出来啊?...
  18. 苹果Mac智能的Python集成开发环境:PyCharm Pro
  19. 费氏数列(c/python)
  20. 英语入门造句专用形容词表(116个)

热门文章

  1. java集合学生信息_java 使用 集合 制作学生管理系统
  2. python多功能文本编辑器_多功能文本编辑器(EditPad Pro)
  3. benchmark mysql_程序员的MySQL手册(二): 监控与benchmark
  4. php怎么删除所有文件夹,用php删除所有文件,文件夹及其子文件夹
  5. celery 停止任务_celery异步任务框架
  6. mysql与ms sql server_MS SQL Server和MySQL区别
  7. vue router html,vue-router.html
  8. 在哪个公众号学python好_怎么通过公众号来快速学习python编程?
  9. 如何使用Android studio创建签名
  10. 360无痕浏览器_高效使用浏览器,探索你不知道的实用功能