sql 语言中 when case 用法
sql语言中有没有相似C语言中的switch case的语句??
没有,用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 <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 < 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 都很实用。再深入一步,你还能够得到你曾经认为不可能得到的分组排序结果集。
sql 语言中 when case 用法相关推荐
- sql 语言中 when case 用法
sql语言中有没有相似C语言中的switch case的语句?? 没有,用case when 来取代就行了. 比如,以下的语句显示中文年月 select getdate() as 日期,case mo ...
- c语言中point的用法_关于C语言Switch语句,先学这些技巧够不够?
一.C语言中switch的用法 1.switch后面括弧内的[表达式],ANSI标准允许它为任何类型: 2.当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,否则,就 ...
- c语言中switch的用法是什么?
c语言中switch的用法是: 功能:switch语句是多分支选择语句.用来实现多分支选择结构.if语句只有两个分支可供选择,而实际问题中常常要用到多分支的选择.例如,学生成绩分类(90为" ...
- table是什么函数c语言,c语言中table的用法
c语言中table的用法 c语言中table的用法的用法如下:1 说明1.1 RECORD定义记录数据类型. 它类似于C语言中的结构数据类型(STRUCTURE),PL/SQL提供了将几个相关的.分离 ...
- c语言中switch扑克牌花色,c语言中switch的用法
c语言中switch的用法 c语言中switch的用法的用法如下:C语言还提供了另一种用于多分支选择的switch语句, 其一般形式为:switch(表达式){case 常量表达式1: 语句1;cas ...
- C语言中typeof作用,浅析C语言中typeof关键字用法
浅析C语言中typeof关键字用法 前言 C语言中 typeof 关键字是用来定义变量数据类型的.在linux内核源代码中广泛使用. 下面是Linux内核源代码中一个关于typeof实例: #defi ...
- c语言中getche的用法,c语言中getch的用法
[www.hywsbj.com--图表展板] getch()函数是无回显的从控制台取得一个字符.以利用getch()函数让程序调试运行结束后等待编程者按下键盘才返回编辑界面,即任意键继续效果.下面小编 ...
- php indexof的用法,c语言中indexof的用法有哪些
c语言中indexof的用法有哪些 index在互联网上表示网站的默认主页.一般为 index.html index.htmindex.aspindex.php:另外的默认主页也多用default.h ...
- c语言中size of 用法,C语言中sizeof()的用法
要参加软件研发的笔试(C/C++)几乎都会涉及到sizeof()的用法,我昨天也遇到了,有的也会,但是真正sizeof()的核心还是没有领会,今天上网,无聊中就看到了详细的sizeof()的阐述,现在 ...
最新文章
- python2 与 python3 语法区别
- Codeforces 1326F Wise Men (容斥原理、状压 DP、子集和变换、划分数)
- vue2.0 子组件和父组件之间的传值
- mysql 事件里定义事物_聊一聊 MySQL 中的事务及其实现原理
- [BZOJ 4916]神犇和蒟蒻
- java socket编写服务器_Java网络学习笔记1:用(Server)Socket编写简单的客户/服务器程序...
- PDFMate PDF Converter Pro
- 5000并发的qps是多少_高并发架构设计
- 注解、垃圾回收和线程
- ARToolKit从图片生成特征点数据
- 简单地使用jquery的validate
- GD32F105V开发过程中的管脚配置问题记录
- LoadRunner教程(8)-LoadRunner 负载生成器
- 如何通过广西税务12366缴纳城乡居民医保费用及下载缴费凭证?
- 简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW个人网站制作成品 web网页制作与实现
- 粉象生活日记1:系统化打磨
- sequence和sequencer — UVM
- 24. 两两交换链表中的节点-两两反转链表-LeetCode
- 不要告诉我你不知道这32个网站!
- maven打包时打包指定的lib文件夹