当前位置: 首页 > article >正文

SQL:select case 用法详解 带例子 图解说明 sqlserver2000

 

 

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 

 

举例:

数据库pubs

表titles

Title     price 

1          [NULL]

2          [NULL]

3          9

4          11

5           21

 

图解

 

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 都非常有用。再深入一步,你还可以得到你以前认为不可能得到的分组排序结果集



注意,为了在 


  

http://www.lryc.cn/news/2421121.html

相关文章:

  • springboot的多模块开发
  • 开源网上商城程序(简介国内外开源网店系统)
  • 破解硬盘还原卡与还原精灵
  • 云南省增值税发票综合平台(修订版)----发票抵扣勾选教程---
  • 注册表无法修改解决
  • Android之MediaPlayer详解
  • Keil5-MDK 使用编译步骤及异常与修改(生成axf文件和bin文件)
  • 参观中关村软件园二期小记
  • 怎么完全卸载赛门铁克_赛门铁克(sep)卸载方法
  • Xcode5.1离线下载安装及使用iOS5模拟器进行开发调试的方法
  • Win2003安装简录
  • KindEditor编辑器 用法
  • 红雪iOS6.1.3不完美越狱教程
  • 魔域mysql下载_魔域3.2无敌版之富甲天下下载_魔域3.2无敌版下载_快吧单机游戏...
  • Linux小知识---关于socket的一些知识点
  • 网维服务器加硬盘,网维大师官网-帮助
  • 裸奔浏览器_谁动了我的浏览器主页?“技术霸凌”带来糟心事
  • WPA2破解教程(详细步骤)
  • 雷军,早已财富自由的人,依然在努力!
  • NoSQL数据库Redis--2
  • 天蓝色房间(密室逃脱三)攻略
  • Unity实现瞄准镜效果之美
  • PC装MAC OS 10.6雪豹系统教程
  • windows 执行CMD命令
  • Java爬虫实践:Jsoup+HttpUnit爬取今日头条、网易、搜狐、凤凰新闻
  • 开发WAP网站入门
  • 2021-03-01
  • .NET Framework 3.5 SP1 离线安装时下载文件问题及精简方法
  • chinaren同学录的字数倒记数
  • as3.0舞台自适应