casewhen返回多个值(case when then else多个结果)
SQL查询语句中如何用case when 返回多个字段?
一个字段一个字段的判断
就是a和b都不等于0返回的话
select
table.*,
(case
when
a0
and
b0
then
c%a
else
end)
as
e,
(case
when
a0
and
b0
then
(c%a)%b
else
end)
as
d
from
table
where
……
如果是其他情况,再添加case
when条件
case when 多个判断返回多个字段
select?sum(case?when?end_km5000?then?1?else?0?end)?as?[小于0.5万公里],
sum(case?when?end_km=5000?and?end_km15000?then?1?else?0?end)?as?[0.5万到1.5万公里],
sum(case?when?end_km=15000?and?end_km20000?then?1?else?0?end)?as?[1.5万到2万公里],
sum(case?when?end_km=20000?and?end_km25000?then?1?else?0?end)?as?[2万到2.5万公里],
sum(case?when?end_km=25000?and?end_km30000?then?1?else?0?end)?as?[2.5万到3万公里],
sum(case?when?end_km=30000?then?1?else?0?end)?as?[2.5万到3万公里]
from?表名
as别名那地方,看你具体是什么数据库了,sqlserver或access的话就像我这么写,oracle的话,将[]换成一对双引号(英文写法滴),mysql的话将[]换成这个``(上边数字键1左边那个键)
oracle case的这种写法怎么对应多个值 case x when……
1、先创建测试表如下:
create table TEST_SRC_ANA_TABLES
(
owner? ? ? VARCHAR2(30) not null,
table_name VARCHAR2(100) not null,
db_name? ? VARCHAR2(30)
)
并插入数据如下,
2、编写case x when ...的脚本:
3、也可以写成case when x... when x...的脚本:
扩展资料
1、Case when 的用法,简单Case函数 ,简单CASE表达式,使用表达式确定返回值.
语法:
CASE search_expression
WHEN expression1 THEN result1
WHEN expression2 THEN result2
...
WHEN expressionN THEN resultN
ELSE default_result
2、搜索CASE表达式,使用条件确定返回值。
语法:
CASE
WHEN condition1 THEN result1
WHEN condistion2 THEN result2
...
WHEN condistionN THEN resultN
ELSE default_result
END
3、这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
参考资料
Oracle-百度百科