当前位置:首页 » 编程语言 » sqlcase多字段
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sqlcase多字段

发布时间: 2022-04-20 14:39:27

‘壹’ 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部分将会被自动忽略。

(1)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 CASE可不可以查询多个字段

种查询SQL, 利用union获bc各自统计结, 再统计整合终结: select sum(d.b_cnt) + sum(d.c_cnt) as total_cnt, sum(d.b_cnt) as b_cnt, case when sum(d.b_cnt) = 0 then '' else d.val end as b_label, sum(d.c_cnt) as c_cnt, case when sum(d.c_cnt) = 0 then '' else d.val end as c_label from( select b as val, count(b) as b_cnt, 0 as c_cnt from A group by b union all select c, 0, count(c) as c_cnt from A group by c ) d group by d.val SQL Serer测试结(栏位序变化), 图" class="illustration_alink"> total_cnt总数, b_labelb栏值, b_cntb栏数, c_labec栏值, c_cntc栏数.   结跟字段否整型关, 统计记录现数.

‘叁’ sql case when多条件筛选

这个不需要case when ,只要写where 子句就可以了

select*from表格名where(年龄=15and性别='女')or(年龄=20and性别='男');

‘肆’ mysql中case when 多个字段同时满足条件判断

case when c = 1 then “单一”
when c = 0 and int(a)+int(b)>=1 then “邀请”end

‘伍’ SQL CASE语句

不要使用when null来判断,等于NULL的时候判断不出来的
你可以当字段等于NULL时给一个默认值。比如
(CASE isnull(field,'')
WHEN '1' THEN '1'
WHEN '' THEN '1'
ELSE '0' END
) AS field
或者在when后边写条件
case when field = '1' then '1' when field is null then '1' else '0' end as field

‘陆’ 求详解SQL的CASE函数语句含义

select 课程,
sum(case when 姓名='李四' then 成绩 end)as '李四',
sum(case when 姓名='张三' then 成绩 end)as '张三'
from table_2
group by 课程

--意思是:
查询结果按照“课程”、“李四的成绩”、“张三的成绩”显示出来,
其中“李四的成绩”计算方法是:
当姓名=李四,那么就计算将该行的成绩按照课程进行分类加总
“张三的成绩”计算方法是:
当姓名=张三,那么就计算将该行的成绩按照课程进行分类加总

select 姓名,
sum(case when 课程='语文' then 成绩 end)as '语文',
sum(case when 课程='数学' then 成绩 end)as '数学',
sum(case when 课程='英语' then 成绩 end)as '英语'
from table_2
group by 姓名

--类似的意思是:
查询结果按照“姓名”、“语文”、“数学”、“英语”按照姓名进行加总各科成绩显示出来,
其中“语文”成绩计算方法是:
当科目=语文,那么就计算将该行的成绩按照姓名进行分类加总
“数学”成绩计算方法是:
当科目=数学,那么就计算将该行的成绩按照姓名进行分类加总
“英语”成绩计算方法是:
当科目=英语,那么就计算将该行的成绩按照姓名进行分类加总

case when 条件 then 表达式1 else 表达式2 end
表示:当条件成立,则返回表达式1,否则返回表达式2.
因此:sum(case when 姓名='李四' then 成绩 end)as '李四', 表示如果姓名为李四,则加总计算成绩,列名为‘李四’

类似的楼主可以自己理解了。

‘柒’ sql语句中case 修改字段值

刚才您已经发过一次这个帖子了,那个then的后边只能跟着一个值,而不是一个等式。
select case t.dl when '0000' then '未分类' else t.tdl end,
t.tdl lx,
count(p.id) zrs
from (select distinct(code1||code2) dl,title1||title2 tdl from sys_certificate t where t.bigclass='02') t left join sys_drivers p on t.dl=substr(p.property,3,4) and groupid=128
group by (case t.dl when '0000' then '未分类' else t.tdl end),
t.tdl
order by t.dl asc

‘捌’ SQL case 用法 求教!!!

把case 后边的 “年龄” 去掉就可以了。
case 后边有字段的话,when只能去对比字符串,不能写成条件表达式 case 年龄 when 20 then ...这样

‘玖’ SQL查询语句中如何用case when 返回多个字段

一个字段一个字段的判断
就是a和b都不等于0返回的话
select
table.*,
(case
when
a<>0
and
b<>0
then
c%a
else
0
end)
as
e,
(case
when
a<>0
and
b<>0
then
(c%a)%b
else
0
end)
as
d
from
table
where
……
如果是其他情况,再添加case
when条件

‘拾’ 如何用case/when语句实现不同条件下更新同一张数据表的不同字段

可使用case when来实现这个条件,需要嵌套子查询语句,sql语句代码示例如下: