A. 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。
B. SQL语句CASE WHEN
selectsum(casewhena='退货'then-belsebend)
from表
C. sql case when请教
应该这样写:
select 姓名,工龄,
(case when (工龄>= '35') then '90%'
when (工龄>='30' and 工龄<'35') then '85%'
when (工龄>='20' and 工龄<'30') then '80%'
when (工龄>='10' and 工龄<'20') then '70%'
else 0 end) as '计算比例'
from 表
90% ,85%。。。 这些两边都加上引号
else 后面不能再跟 then
回答补充:
90%,85% 这些本来就是字符啊,数据库不会认为90%是数字的,只会认为它是字符,是字符就必须加上引号。
除非你写成0.9, 0.85。。。
这样数据库就会认为是数字,就不用加引号了。
D. 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)sqlwhen扩展阅读:
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来定义别名。
E. 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 ) = ‘低薪'
当做一个列就好了
F. SQL中case when的用法
CASE
WHEN要么是查询条件要么是查询结构,表名逗号后面没用,语法不对
G. sql语句case when什么意思
case when 就是case when
判断 case when 当满足条件 then 。。。
when ...... then
...
可以写很多种情况,直到结束
H. sql 的case when 语句
把括号去掉就好了。
下面是case的两种用法,可以看下 :
1. 使用带有 CASE 简单表达式的 SELECT 语句。
在 SELECT 语句中,CASE 简单表达式只能用于等同性检查,而不进行其他比较。下面的示例使用 CASE 表达式更改产品系列类别的显示,以使这些类别更易于理解。
USE AdventureWorks2008R2;
GO
SELECT ProctNumber, Category =
CASE ProctLine
WHEN 'R' THEN 'Road'
WHEN 'M' THEN 'Mountain'
WHEN 'T' THEN 'Touring'
WHEN 'S' THEN 'Other sale items'
ELSE 'Not for sale'
END,
Name
FROM Proction.Proct
ORDER BY ProctNumber;
GO
2. 使用带有 CASE 搜索表达式的 SELECT 语句
在 SELECT 语句中,CASE 搜索表达式允许根据比较值替换结果集中的值。下面的示例根据产品的价格范围将标价显示为文本注释。
USE AdventureWorks2008R2;
GO
SELECT ProctNumber, Name, 'Price Range' =
CASE
WHEN ListPrice = 0 THEN 'Mfg item - not for resale'
WHEN ListPrice < 50 THEN 'Under $50'
WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250'
WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000'
ELSE 'Over $1000'
END
FROM Proction.Proct
ORDER BY ProctNumber ;
GO
I. 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将被自动忽略。
(9)sqlwhen扩展阅读:
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来定义别名。
J. SQL中CASE WHEN THEN的用法
selectcasewhenage<30thenN'青年'whenagebetween30and49thenN'中年'elseN'老年'endas[年龄段],count(name)as[数目]fromtable
groupbycasewhenage<30thenN'青年'whenagebetween30and49thenN'中年'elseN'老年'end