㈠ sql case when then else end 和 ibatis问题
看看编码是否是一致的,可能内部用的Unicode,外面用的UTF8或者其他的什么就可能导致这个问题。
㈡ 关于SQL case when then else end 问题:有没有错我没有运行出来。。。
1.第一行select后面的需要增加空格,否则语句中的select就和后面的语句连上了,会出现语法错误;
2.strSql = strSql + "(case when a.cd_Value = '40' then '其他人员' end) AS cd18, ";这行中cd18后的逗号去掉换成空格;
3.strSql = strSql + "FROM xt_t_CodeDetail a ,xt_t_CodeType b";这行中最后b后面需要增加空格。
试试吧。目前就看出这么多问题,如果还是有问题,把报错提示发出来看看。
㈢ 关于sql server语句case when then else end 的语句怎么用
--SQL中有判断的地方就可以用到他,相当于Excel的iif()函数,其他语言的ifelse
--如果怎样就怎样,否则就怎样
--比如,如果性别为1就显示为男,否则就显示为女
SelectName,casewhenSex=0then'男'else'女'end性别
FromZlEmployee
--行转列
Select
Code,
CasewhenSex=0thenNameelse''endAs男,
CasewhenSex=1thenNameelse''endAs女
FromZlEmployee
--自定义排序
SelectName,SexfromZlEmployee
orderbycaseLeft(Name,1)
when'赵'then1
when'钱'then2
when'孙'then3
when'李'then4
when'周'then5
when'吴'then6
when'郑'then7
when'王'then8
Else9End
㈣ 为啥SQL中select语句中,有时用:case......when …… then …… else …… end as x
selectsum(casewhenA.CLOSE_ID='T'then1else0end)from(selectdistinctA.CLOSE_ID,A.MO_NOfromA)T'完成种数'=COUNT(CASEWHENA.CLOSE_ID='T'THENA.MO_NOELSE0END)这句的逻辑就有问题,你要求A.CLOSE_ID='T'时,A.MO_NO的个数吗看那样你直接写selectcount(A.MO_NO)fromAwhereA.CLOSE_ID='T'就好了就算你一定要用casewhenthen,你也要用sum而不是count,你用count是所以(CASEWHENA.CLOSE_ID='T'THENA.MO_NOELSE0END)的个数,就算是0,它也是个值,仍然会被count进去啊,你只有sum时,0才是不会起做用的数。
㈤ SQL条件控制(case when...then...else...end)
select ByeTime,case when len(ByeTime)>0 then str(DATEDIFF(day,ComeInTime,ByeTime))+'(已离职)'
else str(DATEDIFF(day,ComeInTime,getdate())) end as test
from myUser where DelFlag='0' and UserID='cq'
这样试一下.语法应该没有问题
㈥ 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部分将会被自动忽略。
(6)sqlthenelseend扩展阅读:
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 then else end中一定要有else吗
--可以不写else但是一定要有end,没有else如果不满足条件会以null填充
㈧ sql server 中的 case when then else end中end起什么作用我看有的语句没有end也
selectsum(casewhenA.CLOSE_ID='T'then1else0end)from(selectdistinctA.CLOSE_ID,A.MO_NOfromA)T'完成种数'=COUNT(CASEWHENA.CLOSE_ID='T'THENA.MO_NOELSE0END)这句的逻辑就有问题,你要求A.CLOSE_ID='T'时,A.MO_NO的个数吗?那样你直接写selectcount(A.MO_NO)fromAwhereA.CLOSE_ID='T'就好了就算你一定要用casewhenthen,你也要用sum而不是count,你用count是所以(CASEWHENA.CLOSE_ID='T'THENA.MO_NOELSE0END)的个数,就算是0,它也是个值,仍然会被count进去啊,你只有sum时,0才是不会起做用的数。
㈨ SQL条件控制(case when...then...else...end) 的详细解释是什么
例如一个3条件取值的字段:
casewhen条件1then取值1when条件2then取值2else取值3end
when后接条件语句,then后为字段取值(数值或字符串等都可以,但类型须一致)。
㈩ sql的case when then else end我知道能判断两层,怎么实现判断三次呢
selectcasewhencolumn=1then'a'
whencolumn=2then'b'
elsec
end