sqlwhencasethen
Ⅰ PLsql中,select case..when.. then..什么意思怎么用
case when ... then .. when .. then ... end
这种表达式,是sql的不同条件分支结果。
举例如下,
1、创建数据表,create table test_student(stu_id number, class_id number);
Ⅱ SQL判断语句用法和多表查询
1.格式化时间sql语句
本例中本人随便做了两张表,和实际不是很相符,只是想说明sql语句的写法。
例1表格式如下:
需求:查询出本表,但需要使time字段的时间格式为yyyy-MM-dd,比如:2013-08-13
sql写法:
SELECT
u.id,u.userId,u.timeType,DATE_FORMAT(time,'%Y-%m-%d')
AS
time,secondId
FROM
`user`
u
运行结果:
2.多表查询(三表查询)
例二三表结构如下:
需求:查询出主表,要求在主表中显示username和secondname
sql写法:
SELECT
u.id,n.`name`,u.timeType,u.time,s.`name`
FROM
`user`
u,`name`
n,`second`
s
WHERE
u.userId=n.id
AND
u.secondId=s.id
运行结果:
3.when
then判断语句
例三表结构如下:
需求:查询上表,若timeType字段值为2时,显示每月的第二天,若timeType字段值为4时,显示每月的第四天
sql写法:
SELECT
u.id,u.userId,(CASE
WHEN
u.timeType=2
THEN
'每月第二天'
WHEN
u.timeType=4
THEN
'每月第四天'
END)
AS
timeType
,u.time,u.secondId
FROM
`user`
u
运行结果:
以上所述是小编给大家介绍的SQL判断语句用法和多表查询,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
Ⅲ SQL中CASE WHEN THEN的用法
selectcasewhenage<30thenN'青年'whenagebetween30and49thenN'中年'elseN'老年'endas[年龄段],count(name)as[数目]fromtable
groupbycasewhenage<30thenN'青年'whenagebetween30and49thenN'中年'elseN'老年'end
Ⅳ 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将被自动忽略。
(4)sqlwhencasethen扩展阅读:
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来定义别名。
Ⅳ SQL条件控制(case when...then...else...end) 的详细解释是什么
例如一个3条件取值的字段:
casewhen条件1then取值1when条件2then取值2else取值3end
when后接条件语句,then后为字段取值(数值或字符串等都可以,但类型须一致)。
Ⅵ sql 2000中 select case when then 的用法
CASE WHEN condition THEN result
[WHEN ...]
[ELSE result]
END
CASE
子句可以用于任何表达式可以有效存在的地方。 condition 是一个返回boolean 的表达式。 如果结果为真,那么
CASE
表达式的结果就是符合条件的 result。 如果结果为假,那么以相同方式搜寻任何随后的 WHEN 子句。
如果没有 WHEN
condition 为真,那么 case 表达式的结果就是在
ELSE 子句里的值。
如果省略了 ELSE
子句而且没有匹配的条件, 结果为 NULL。
例子:
SELECT * FROM test;
a
---
1
2
3
SELECT a,
CASE WHEN a=1 THEN 'one'
WHEN a=2 THEN 'two'
ELSE 'other'
END
FROM test;
a | case
---+-------
1 | one
2 | two
3 | other
所有 result 表达式的数据的类型都必须可以转换成单一的输出类型。
下面这个"简单的" CASE
表达式是上面的通用形式的一个特殊的变种。
CASE expression
WHEN value THEN result
[WHEN ...]
[ELSE result]
END
先计算 expression 的值, 然后与所有在WHEN
子句里声明的 value 对比,直到找到一个相等的。 如果没有找到匹配的,则返回在
ELSE 子句里的
result (或者 NULL)。 这个类似于 C 里的
switch
语句。
上面的例子可以用简单 CASE
语法来写:
SELECT a,
CASE a WHEN 1 THEN 'one'
WHEN 2 THEN 'two'
ELSE 'other'
END
FROM test;
a | case
---+-------
1 | one
2 | two
3 | other
CASE
表达式并不计算任何对于判断结果并不需要的子表达式。 比如,下面是一个可以避免被零除的方法:
SELECT ... WHERE CASE WHEN x <> 0 THEN y/x > 1.5 ELSE false END;