case when.then.else.end
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/06/22 14:22:28
case when.then.else.end
SQL实现如下功能
用case when...then...else.end 实现
当A=1时,那么B=1,否则B=0;C=0,否则C=1
SQL实现如下功能
用case when...then...else.end 实现
当A=1时,那么B=1,否则B=0;C=0,否则C=1
首先你要搞清楚case when的用法
case when最终得到的结果是一个值,而不是多个值,更不是赋值.你写的就是赋值了.
你是要更新么?
update 表 set b = (case A when 1 then 1 else 0 end),c = (case A when 1 then 0 else 1 end)
一定要写两次才行.
如果查询语句,那么B和C应该是你构建的两个列了
select (case A when 1 then 1 else 0 end) as B,
(case A when 1 then 0 else 1 end) as C
from 表
case when也可以写成
case when A = 1 then 1 else 0 end这样的形式.
不管怎么写,你要记住,case when语句,得到的是一个值,而不是在里面赋值.
因为你写的并不明确,所以大家都搞不清楚你到底是要更新B列和C列还是要查询
再问: 额。。我不是要update某列,是这样的 举个例子,我本来是写了一段SQL:select t.month,t.name,t.sex from table t 这样子查询出来一笔数据,如下格式 month name sex 9月 小李 男 9月 小王 男 8月 小红 女 我想让出来的数据变成下面的样子 9月 0 0 9月 0 0 8月 小红 女 也就是说只要是month是9月的,name和sex都显示0 只是显示0,不进行update 用case when如何实现?谢谢
再答: select month, (case month when '9月' then '0' else name end) as name, (case month when '9月' then '0' else sex end) as sex from table 看明白了吧?这个很简单了 如果month是9月,那么就取0,否则取相应的字段就好了。但是注意取'0'是字符型的,为了和你的字段类型对应。 记住case when里面多个情况,返回的类型一定要是一致的。 这就相当于构建了一个列一样,不同情况,这个列取的值不同,但是必须是同一类型。
case when最终得到的结果是一个值,而不是多个值,更不是赋值.你写的就是赋值了.
你是要更新么?
update 表 set b = (case A when 1 then 1 else 0 end),c = (case A when 1 then 0 else 1 end)
一定要写两次才行.
如果查询语句,那么B和C应该是你构建的两个列了
select (case A when 1 then 1 else 0 end) as B,
(case A when 1 then 0 else 1 end) as C
from 表
case when也可以写成
case when A = 1 then 1 else 0 end这样的形式.
不管怎么写,你要记住,case when语句,得到的是一个值,而不是在里面赋值.
因为你写的并不明确,所以大家都搞不清楚你到底是要更新B列和C列还是要查询
再问: 额。。我不是要update某列,是这样的 举个例子,我本来是写了一段SQL:select t.month,t.name,t.sex from table t 这样子查询出来一笔数据,如下格式 month name sex 9月 小李 男 9月 小王 男 8月 小红 女 我想让出来的数据变成下面的样子 9月 0 0 9月 0 0 8月 小红 女 也就是说只要是month是9月的,name和sex都显示0 只是显示0,不进行update 用case when如何实现?谢谢
再答: select month, (case month when '9月' then '0' else name end) as name, (case month when '9月' then '0' else sex end) as sex from table 看明白了吧?这个很简单了 如果month是9月,那么就取0,否则取相应的字段就好了。但是注意取'0'是字符型的,为了和你的字段类型对应。 记住case when里面多个情况,返回的类型一定要是一致的。 这就相当于构建了一个列一样,不同情况,这个列取的值不同,但是必须是同一类型。
case when.then.else.end
case when then else end
(case A.ZT when 1 then 's318' else null end)
CASE a WHEN 1 THEN b ELSE NULL END
select CNAME=case when CNAME is null then '4' else '1' end f
--简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE
SELECT CASE ABC.A WHEN'否' THEN'1' WHEN'是' THEN'-1' END AS 出入
c#开发cast( (case when b.pbproject_ID is null then 1 else 0 en
case when语句结尾用end 还是end case
sql case when then ...虚心求教
IF then else end if 怎么用的?
IF-THEN-END IF和IF-THEN-ELSE-END IF这里的END IF前后意思不一样吧?