SQL语句中case,when,then的用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语句中case,when,then的用法相关的知识,希望对你有一定的参考价值。
用法如下:
复制代码
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
这两个结果是一样的:
需要注意的一点是,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来定义别名。
参考技术A select case when 字段名 is null then '录入' else 字段名 end as 别名 from 表名 where 条件别名要不要都行。 语法没多少用的!要有一个整段sql例子!你就懂了 参考技术B case 表达式
when 值1 then 结果1
when 值2 then 结果2
else 结果3
也有另一种形式
case
when 表达式1 then 结果1
when 表达式2 then 结果2
else 结果3
sql 中 case when 语法
sql 存储过程中 case when then 之后可以加 sql语句么,可以有详细的例子么
下面的存储过程正确么
主要看后面的case when then
--简单case函数
case sex
when '1' then '男'
when '2' then '女'
else '其他' end
--case搜索函数
case when sex = '1' then '男'
when sex = '2' then '女'
else '其他' end
这两种方式,可以实现相同的功能。简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判定式。
还有一个需要注重的问题,case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略。
--比如说,下面这段sql,你永远无法得到“第二类”这个结果
case when col_1 in ( 'a', 'b') then '第一类'
when col_1 in ('a') then '第二类'
else'其他' end追问
我主要想问case when then 之后可以加sql语句么
参考技术B case when then as 某个字段,后面可以加sql语句的 参考技术C select case when f1=1 then 'f1 is 1' else 'f1 not is 1' end as f2 from t1追问我主要想问case when then 之后可以加sql语句么
追答原则上可以加,但只能加能直接返回一个数据的sql语句或函数,注意是一个数据,不能是多个,也不能加没有结果的过程。
换句话说,case when只是一个返回结果的功能语句,不是条件分支语句,不能指示程序的走向
以上是关于SQL语句中case,when,then的用法的主要内容,如果未能解决你的问题,请参考以下文章