① sql条件控制(case when...then...else...end) 的详细解释是什么
例如一个3条件取值的字段:
casewhen条件1then取值1when条件2then取值2else取值3end
when后接条件语句,then后为字段取值(数值或字符串等都可以,但类型须一致)。
② sql case when多条件筛选
这个不需要case when ,只要写where 子句就可以了
select*from表格名where(年龄=15and性别='女')or(年龄=20and性别='男');
③ case when then else多个条件什么
Case when语句能在SQL语句中织入判断逻辑,类似于Java中的if else语句。
CASE WHEN语句分为简单函数和条件表达式。
1、简单函数。
CASE 字段 WHEN 预期值 THEN 结果1 ELSE 结果2 END
如果字段值等于预期值,则返回结果1,否则返回结果2。
2、条件表达式。
SQL CASE 表达式是一种通用的条件表达式,类似于其它语言中的 if/else 语句。
CASE子句可以用于任何表达式可以有效存在的地方。 condition 是一个返回boolean 的表达式。 如果结果为真,那么 CASE 表达式的结果就是符合条件的 result。
如果结果为假,那么以相同方式搜寻任何随后的 WHEN 子句。 如果没有 WHEN condition 为真,那么 case 表达式的结果就是在 ELSE 子句里的值。 如果省略了 ELSE 子句而且没有匹配的条件, 结果为 NULL。
CASE 字段 WHEN 预期值 THEN 结果1 ELSE 结果2 END
如果字段值等于预期值,则返回结果1,否则返回结果2。
1、case 字段 when 值 then 返回值 when 值2 then 返回值2 end。
2、case when 条件1 then 返回值1 when 条件2 then 返回值2 end。
case when then else end在平时写程序时非常常用,主要用来判断字段多状态的情况。其具体语法与使用方法如下:
case
when condition1 then result1
when condistion2 then result2
when condistionN then resultN
else default_result
end
该语句表示当条件满足condition1时,返回result1,后面n个条件同理,当条件都不满足时,返回default_result并结束。
④ SQL中case,when,then,else的用法是什么
用法:
1、第一种写法:
复制代码
SELECT
s.s_id,
s.s_name,
s.s_sex,
CASE
WHEN s.s_sex = '1' THEN '男'
WHEN s.s_sex = '2' THEN '女'
ELSE '其他'
END as sex,
s.s_age,
s.class_id
FROM
t_b_student s
WHERE
1 = 1
2、第二种写法
SELECT
s.s_id,
s.s_name,
s.s_sex,
CASE s.s_sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他'
END as sex,
s.s_age,
s.class_id
FROM
t_b_student s
WHERE
1 = 1
两个运行结果一样:
有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
(4)sqlcase多条件扩展阅读:
Case具有两种格式:简单Case函数和Case搜索函数。
简单Case函数:
CASE sex
WHEN‘1’THEN‘男’
WHEN‘0’THEN‘女’
ELSE‘其他’END
Case搜索函数:
CASE WHEN sex=‘1’THEN‘男’
WHEN sex=‘0’THEN‘女’
ELSE‘其他’END
显然,简单Case函数生在简洁,但是它只适用于这种单字段的单值比较,而Case搜索函数的优点在于适用于所有比较的情况。
还有一个需要注意的问题,Case函数在满足了某个符合条件后,剩下的条件将会被自动忽略,因此,即使满足多个条件,执行过程中也只认第一个条件。
在使用CASE WHEN时,可以把它当作一个没有字段名的字段,字段值根据条件确认,在需要使用字段名时可以是用as来定义别名。
⑤ SQL筛选多重条件数据 语句怎么写
这么复杂的题目啊,要转3、4道弯呢。
SELECTTeam
,COUNT()ASCount3Full
,COUNT()ASCount2Full
,COUNT()ASCount1Full
,COUNT()ASCount0Full
FROM(
--先汇总个人情况
SELECTName,Team,
SUM(Score1/5+Score2/5+Score/5)ASFullCount
FROMScore
)D
GROUPBYTeam
⑥ SQL语句中case,when,then的用法
Select Case 语句在有多个可能的条件必须被检查时使用。与 If 语句不同,Select Case语句在找到匹配的Case 表达式并执行了Case 表达式和下一个Case 表达式之间的语句后将立即跳出。如果没有匹配的Case 表达式,将执行其它语句。
Case Else 与lse 的意义相同。Case 语句能接受各种类型的(作为判断条件的)表达式。表达式可以是单一值、由逗号分隔的一组值、能返回值的函数、用"To"关键字指定的值的范围或者使用"Is"关键字对等式或不等式进行测试。您可以连接不同类型的不同表达式,只要将它们用逗号分开即可。
⑦ sql case when 怎么用
Case具有两种格式。简单Case函数和Case搜索函数。
–简单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。
⑧ sql case when 多条件不能用于表达式的相加或相乘吗
你写的也太乱了吧,而且也没描述出想要什么效果?我给你改了一下你看看对不对。
CREATE VIEW ABC
as
slect
W=case
when A2 is null then B2
else A2
end,
E=case
when A1 is null then C1
else A1
end
from A join C on A1=C1 join B on C2=B2
或者简化一下,直接写:
CREATE VIEW ABC
as
slect
W=ISNULL(A2,B2),
E=ISNULL(A1,C1)
⑨ mysql中case when 多个字段同时满足条件判断
case when c = 1 then “单一”
when c = 0 and int(a)+int(b)>=1 then “邀请”end
⑩ oracle case when 多条件的sql问题
select
case when count >=1 and count<3 then '关键'
when count >=3 and count<5 then '重点'
when count >=5 then '一般'
end xxx
from ...