我真的在MSSQL 2012中遇到一个案例陈述。我已经四处寻找其他答案了,但是虽然我得到了一些帮助,但似乎没有人解决这个问题。
case firstname
when len(ltrim(rtrim(firstname))) > 11 then 'blah'
else 'blahblah'
end as test
我在'>'上收到语法错误字符。
最初,这是
case firstname
when ltrim(rtrim(firstname)) like '% %' then 'blah'
else 'blahblah'
end as test
但我认为关键字关键字可能有一些敏感度,所以我将其更改为“>”,但我得到了相同的内容。
可能是一个愚蠢的问题,但我已经敲了几个小时,我会非常感激一些见解。
答案 0 :(得分:2)
试试这个版本:
(case when len(ltrim(rtrim(firstname))) > 11 then 'blah'
else 'blahblah'
end) as test
case
语句有两个版本。带变量的那个用于常量表达式:
(case firstname
when 'Arnold' then . . .
when 'Betty' then . . .
end)
第二个版本(实际上是我唯一使用的版本)为每个部分采用条件:
(case when firstname = 'Arnold' then . . .
答案 1 :(得分:0)
将其更改为
case
when len(ltrim(rtrim(firstname))) > 11 then 'blah'
else 'blahblah'
end as test
答案 2 :(得分:0)
你混淆了CASE
expressions的两种形式。
一个简单的case表达式检查每个WHEN
子句是否与CASE
之后和第一个WHEN
之前的表达式相等。
搜索的案例表达式检查每个WHEN
子句中的单独任意谓词,并且在CASE
和第一个WHEN
之间没有表达式。
尝试:
case
when len(ltrim(rtrim(firstname))) > 11 then 'blah'
else 'blahblah'
end as test