sql 的case when 语句

2025-02-24 02:05:18
推荐回答(2个)
回答1:

两个错误:
1.case
when的结果作用和字段一样,你的这部分都写到整个语句外面了,肯定错了。
2.第二个长度等于2的判断,是不能有逗号的。
还有,你的里面有中文的单引号,括号,这个应该是你手抄的笔误吧?
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
prevent_seep_type
from
Table_F301(2)

回答2:

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)