当前位置:首页> 正文

SQL中case,when,then,else的用法是什么

SQL中case,when,then,else的用法是什么

本文目录

  • SQL中case,when,then,else的用法是什么
  • sql语句中“case when”怎样使用
  • sql 中 case when 语法
  • sql case when怎么用
  • SQL中case when的用法
  • PLSQL中,select case..when.. then..什么意思怎么用
  • sql 的case when 语句
  • sql语句case when什么意思
  • SQL条件控制(case whenthenelseend) 的详细解释是什么

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

扩展资料:

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 when”怎样使用


举个例子就明白了,例如在员工的工资表把员工的工资分成等级
1000以下为低薪,1000-2000为中等,其他为高薪
select (case when salary 《= 1000 then ’低薪’ when salary 》 1000 and salary 《 2000 then ’中等’ else ’高薪’ end ) as 工资等级 from employee
这样,工资等级就可以当做一个列来处理,包括where里面,可以写where (case when salary 《= 1000 then ’低薪’ when salary 》 1000 and salary 《 2000 then ’中等’ else ’高薪’ end ) = ‘低薪’
当做一个列就好了

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怎么用


case when 0 then ‘是’when 1 then ‘否’;一般情况下在查询语句中用,根居不同的数据结果查询转换成自己想要的类型;
楼主的情况,建议用存储过程,写if语法来做处理

SQL中case when的用法


select b ,(case when count(b)=sum(case when a=null then 0 else 1 end) then 0 else count(b) end) from 表名 group by b
(A B 两个字段, 在B相同的情况下, 要对A有条件的记数,即只要A有一个非空, 就全部记数; A都为空, 也全部记数; A都不为空, 则都不记数
举例:
1. A B
* V1
V1 (记数结果 V1: 2)
2. A B
V1
V1 (记数结果 V1: 2)
3. A B
* V1
* V1 (记数结果 V1: 0)
)

PLSQL中,select case..when.. then..什么意思怎么用


case when ... then .. when .. then ... end

这种表达式,是sql的不同条件分支结果。

举例如下,

1、创建数据表,create table test_student(stu_id number, class_id number);

2、插入测试数据,

insert into test_student values(1,1001);

insert into test_student values(2,1001);

insert into test_student values(3,1002);

insert into test_student values(4,1003);

insert into test_student values(5,1003);

insert into test_student values(6,1003);

3、查询表中数据,select * from test_student ,

4、编写case when 表达式,将class_id翻译为中文名称,sql如下,

select t.*,

       case

         when class_id = 1001 then

          ’语文’

         when class_id = 1002 then

          ’数学’

         when class_id = 1003 then

          ’英语’

       end as class_name

  from test_student t;


sql 的case when 语句


case when应该是select或者是where条件的一部分,你这里,case when部分没有在任何一个地方,而且,你这个很明显,应该是select里面的一部分,作为查询的一个结果列。
所以,要在from前。
还有,when后边是没有逗号的。
最后,还需要end关键字表示结束。
Select prevent_Seep,
Case when length(prevent_Seep) = 1 then ‘无’
When length(prevent_seep) = 2 then ‘有’
When length(prevent_seep) 》 2 then substring(prevent_seep,2,length(prevent_seep))
end as 别名
from Table_F301(2)

sql语句case when什么意思


case when 就是case when
判断 case when 当满足条件 then 。。。
when ...... then
...
可以写很多种情况,直到结束

SQL条件控制(case whenthenelseend) 的详细解释是什么


例如一个3条件取值的字段:

case when 条件1 then 取值1 when 条件2 then 取值2  else 取值3 end

when后接条件语句,then后为字段取值(数值或字符串等都可以,但类型须一致)。

CASE WHEN 及 SELECT CASE WHEN的用法: 

Case具有两种格式。简单Case函数和Case搜索函数。

1、 简单Case函数

CASE sex

WHEN ’1’ THEN ’男’

WHEN ’2’ THEN ’女’

ELSE ’其他’ END

2、Case搜索函数 

CASE WHEN sex = ’1’ THEN ’男’ 

WHEN sex = ’2’ THEN ’女’ 

ELSE ’其他’ END
种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。

参考资料

新浪博客.新浪博客[引用时间2018-1-22]


展开全文阅读

相关内容