SQL语法 case 的使用

简介: 一、CASE 函数是特殊的 Transact-SQL 表达式,它允许按列值显示可选值。数据中的更改是临时的,没有对数据进行永久更改。例如,CASE 函数可以在查询结果集中将 state 列的值为 CA 的行显示为 California。

一、CASE 函数是特殊的 Transact-SQL 表达式,它允许按列值显示可选值。数据中的更改是临时的,没有对数据进行永久更改。例如,CASE 函数可以在查询结果集中将 state 列的值为 CA 的行显示为 California。


CASE 函数的组成部分:


CASE 关键字。


需要转换的列名称。


指定搜索内容表达式的 WHEN 子句和指定要替换它们的表达式的 THEN 子句。


END 关键字。


可选的、定义 CASE 函数别名的 AS 子句。


以下示例将在查询结果集中显示 AdventureWorks 数据库中 Executive and General Administration 组的每个部门的两字母缩写:

USE AdventureWorks
GO
SELECT Name, 
   CASE Name
      WHEN 'Human Resources' THEN 'HR'
      WHEN 'Finance' THEN 'FI'
      WHEN 'Information Services' THEN 'IS'
      WHEN 'Executive' THEN 'EX'
      WHEN 'Facilities and Maintenance' THEN 'FM'
   END AS Abbreviation
FROM AdventureWorks.HumanResources.Department
WHERE GroupName = 'Executive General and Administration'

1、CASE 函数用于计算多个条件并为每个条件返回单个值。CASE 函数通常的用途是将代码或缩写替换为可读性更强的值。下面的示例使用 CASE 函数更改产品系列类别的显示,以使这些类别更易理解。

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;

2、CASE 函数的另一个用途是对数据进行分类。以下查询使用 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

3、 case when then 中判断null的方法

Sql Server 中使用case when then 判断某字段是否为null,和判断是否为字符或数字时的写法不一样,如果不注意,很容易搞错
<span style="font-family: Arial, Helvetica, sans-serif;">错误方法:
CASE columnName WHEN null THEN 0 ELSE columnName END
正确方法:
CASE WHEN columnName is null THEN 0 ELSE columnName END </span>
目录
相关文章
|
2月前
|
SQL 存储 关系型数据库
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
本文详细介绍了MySQL中的SQL语法,包括数据定义(DDL)、数据操作(DML)、数据查询(DQL)和数据控制(DCL)四个主要部分。内容涵盖了创建、修改和删除数据库、表以及表字段的操作,以及通过图形化工具DataGrip进行数据库管理和查询。此外,还讲解了数据的增、删、改、查操作,以及查询语句的条件、聚合函数、分组、排序和分页等知识点。
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
|
6月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何在SQL语句里使用CASE WHEN语句
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
151 2
|
8月前
|
SQL 关系型数据库 MySQL
MySQL数据库基础第一篇(SQL通用语法与分类)
MySQL数据库基础第一篇(SQL通用语法与分类)
|
3月前
|
SQL 存储 关系型数据库
SQL `CREATE DATABASE` 语法
【11月更文挑战第10天】
88 3
|
3月前
|
SQL 关系型数据库 数据库
sql语法
【10月更文挑战第26天】sql语法
53 5
|
8月前
|
SQL PHP
thinkphp之进阶sql语法,持续更新
thinkphp之进阶sql语法,持续更新
57 0
|
4月前
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)
|
4月前
|
SQL 存储 关系型数据库
mysql SQL必知语法
本文详细介绍了MySQLSQL的基本语法,包括SELECT、FROM、WHERE、GROUPBY、HAVING、ORDERBY等关键字的使用,以及数据库操作如创建、删除表,数据类型,插入、查询、过滤、排序、连接和汇总数据的方法。通过学习这些内容,读者将能更好地管理和操
73 0
|
4月前
|
SQL 关系型数据库 MySQL
Mysql(2)—SQL语法详解
SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的标准编程语言。它主要用于数据的查询、插入、更新和删除等操作。SQL最初在1970年代由IBM的研究人员开发,旨在处理关系数据模型。
56 0
|
5月前
|
SQL
SQL: 巧妙使用CASE WHEN实现查询
文章演示了如何利用SQL中的CASE WHEN语句来有效地进行条件性聚合查询,通过具体示例展示了CASE WHEN在统计分析中的应用技巧。
112 0