sql case when 怎么用
Case具有两种格式。简单Case函数和Case搜索函数。
–简单Case函数:
CASEsex。
WHEN’1′THEN’男’。
WHEN’2′THEN’女’。
ELSE’其他’END。
–Case搜索函数:
CASEWHENsex=’1′THEN’男’。
WHENsex=’2′THEN‘女’。
ELSE‘其他’END。
这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
–比如说,下面这段SQL,将永远无法得到“第二类”这个结果。
CASEWHENcol_1IN(‘a’,‘b’)THEN’第一类’。
WHENcol_1IN(‘a’)THEN’第二类’。
ELSE’其他’END。
case when 用法
用法如下:
Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
Casewhen相当于一个自定义的数据透视表,groupby是行名,casewhen负责列名。
case有以下几种搭配:
1、inanycase表示无论如何。
2、innocase表示绝不。
when有以下几种用法:
1、表示什么时候、何时。
2、可以引导从句。
3、俚语“入乡随俗”。
case用法
1、inanycase
inanycase表示的含义是“无论如何…”,在逻辑上引出一个结果。
例句:
Inanycase,GMhasmuchbiggerworriesthanssalescrown.
无论如何,通用汽车要担心的绝不仅仅是个销售王冠的丢失。
2、innocase
innocase表示的含义是“绝不…”。需要注意的是,当这一表达用于句首时,需要进行倒装处理。
例句:
Innocasecanwecheapenthequalityofproducts.
在任何情况下我们都不能降低产品质量。
Asourtradition,tribechiefsareinnocaseallowedtoleavetheearthwheretheywerebornandraisedup.
我们每一代首领,绝对不能离开他们出生的土地。
3.suchbeingthecase
suchbeingthecase表示“既然如此”,其作用是“强调之前的某个条件并得出结论”。
例句:
Theroadsarebad,andsuchbeingthecase,wemustdriveslowly.
道路很糟,情况既然如此,我们只好把车开慢点儿。
SQL中case,when,then,else的用法是什么
用法:
1、第一种写法:
复制代码
SELECT
s.s_id,
s.s_name,
s.s_sex,
CASE
WHENs.s_sex='1'THEN'男'
WHENs.s_sex='2'THEN'女'
ELSE'其他'
ENDassex,
s.s_age,
s.class_id
FROM
t_b_students
WHERE
1=1
2、第二种写法
SELECT
s.s_id,
s.s_name,
s.s_sex,
CASEs.s_sex
WHEN'1'THEN'男'
WHEN'2'THEN'女'
ELSE'其他'
ENDassex,
s.s_age,
s.class_id
FROM
t_b_students
WHERE
1=1
两个运行结果一样:
有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
扩展资料:Case具有两种格式:简单Case函数和Case搜索函数。
简单Case函数:
CASEsex
WHEN‘1’THEN‘男’
WHEN‘0’THEN‘女’
ELSE‘其他’END
Case搜索函数:
CASEWHENsex=‘1’THEN‘男’
WHENsex=‘0’THEN‘女’
ELSE‘其他’END
显然,简单Case函数生在简洁,但是它只适用于这种单字段的单值比较,而Case搜索函数的优点在于适用于所有比较的情况。
还有一个需要注意的问题,Case函数在满足了某个符合条件后,剩下的条件将会被自动忽略,因此,即使满足多个条件,执行过程中也只认第一个条件。
在使用CASEWHEN时,可以把它当作一个没有字段名的字段,字段值根据条件确认,在需要使用字段名时可以是用as来定义别名。