没有,用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。

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

SELECT =

CASE

WHEN THEN

WHEN THEN

ELSE

END

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

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 块。

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

c语言when的使用方法,sql 中 case when 语法使用方法相关推荐

  1. sql 中 case when 语法

    sql语言中有没有类似C语言中的switch case的语句?? 没有,用case   when   来代替就行了.              例如,下面的语句显示中文年月         selec ...

  2. c语言实现函数给主函数中的指针赋值的方法

    //利用二维指针.自从学了c之后,还没怎么用过二维指针,这么算是记住了 /* c语言实现函数给主函数中的指针赋值的方法*/#include<stdio.h>void f (int **p) ...

  3. mysql中 or的使用方法_MySQL中or语句的使用方法

    MySQL中or语句的使用方法 发布时间:2020-05-09 10:20:07 来源:亿速云 阅读:112 作者:三月 下文主要给大家带来MySQL中or语句的使用方法,希望这些文字能够带给大家实际 ...

  4. Case When语句详解SQL中Case When的用法

    SQL中case when的用法 case when类似于编程语言中的if else判断.switch case语句.该语句执行时先对条件进行判断,然后根据判断结果做出相应的操作. Case具有两种格 ...

  5. 【SQL中case then的用法】

    SQL中case then的用法   当我们需要从数据源上直接判断数据显示代表的含义的时候 ,就可以在SQL语句中使用CASE THEN这个函数了.   其中case then有两种格式: 1.第一种 ...

  6. SQL中case的使用方法

    Case具有两种格式.简单Case函数和Case搜索函数. 1.简单Case函数 CASE sex WHEN '1' THEN '男'WHEN '2' THEN '女' ELSE '其他' END 2 ...

  7. keil c语言 延迟程序,Keil C51程序设计中几种精确延时方法

    前几天时间在做一个基于51单片机开发板的等精度频率计,用LCD1602液晶显示的,晶振是22.1184MHZ,用得是测频率法,目的是想做到能够测试0--900KHZ的信号. 液晶显示部分花了我好几天才 ...

  8. SQL 中去重的三种方法

    点击关注上方"逆锋起笔", 设为"置顶或星标",第一时间送达干货 blog.csdn.net/xienan_ds_zj/article/details/1038 ...

  9. SQL中去重的三种方法,还有谁不会?

    来自:CSDN,作者:米竹 链接:https://blog.csdn.net/xienan_ds_zj/article/details/103869048 SQL去重是数据分析工作中比较常见的一个场景 ...

最新文章

  1. 解决Teamviewer连接出现的黑屏问题
  2. 基于QT Plugin框架结构
  3. 华为交换机配置DHCP服务器
  4. 结构化道路上车辆自动驾驶中的雷达类型及安装位置
  5. python模拟太阳系_用 Python 动态模拟太阳系运转
  6. windows phone 7 中文天气预报应用--来源http://www.cnblogs.com/liulunet/archive/2011/08/17/2141696.html...
  7. 欢迎使用 QEMU 的文档!| 目录
  8. Hello, cnblog!
  9. 创业失败的内因分析及避免办法
  10. Keytool和OpenSSL生成和签发数字证书
  11. 不知道浏览器怎么清除缓存?各种浏览器清理缓存的方法
  12. PyCharm New environment和Existing environment
  13. 计算机硬盘copy,diskgenius硬盘拷贝的方法
  14. 7个月吐血整理!Android面试相关文章及Github学习资料(标星3.2K)
  15. 使用unity制作的一款生存类游戏demo(一)
  16. 光删除微信聊天记录是没用的!通过这招,才能完全清空!
  17. Android实现一键复制粘贴,兼容低版本系统(api 11以下)
  18. Thc-Ipv6 使用
  19. IA32-Linux地址转换过程
  20. 滤波——去耦——旁路

热门文章

  1. java enum 父类_枚举基类Enum详解
  2. Redis的key和value大小限制 | value需要压缩吗?
  3. MySql数据库(进阶篇)
  4. 重装华为服务器系统教程视频教程,服务器系统重装教程
  5. 【基础网络】TCP与UDP 的区别
  6. 最优服务次序问题算法c语言,《算法分析与设计》最优服务次序问题的答案-20210414020541.docx-原创力文档...
  7. android 关于启动页广告的总结。
  8. 椭圆、双曲线、抛物线
  9. 麒麟文件服务器,麒麟服务器版如何远程共享桌面
  10. java编程基础部分