将case与like sql anywhere查询一起使用时出错

将case与like sql anywhere查询一起使用时出错,sql,sqlanywhere,Sql,Sqlanywhere,我想在case语句中使用like,并从特定的colmun中搜索字符串 如果该字符串的任何部分包含“中度至重度主动脉狭窄”,则我希望显示“中度至重度”,而不是整个字符串 如果该字符串的任何部分包含“严重主动脉狭窄带”,则我希望显示“严重”,而不是整个字符串 如果该字符串包含“存在中度主动脉狭窄”,则我希望显示“中度”,而不是完整字符串 下面是我的查询无法运行某些systax错误 SELECT (CASE a.Column when LIKE '%Moderate to severe aorti

我想在case语句中使用like,并从特定的colmun中搜索字符串 如果该字符串的任何部分包含“中度至重度主动脉狭窄”,则我希望显示“中度至重度”,而不是整个字符串 如果该字符串的任何部分包含“严重主动脉狭窄带”,则我希望显示“严重”,而不是整个字符串 如果该字符串包含“存在中度主动脉狭窄”,则我希望显示“中度”,而不是完整字符串

下面是我的查询无法运行某些systax错误

SELECT (CASE  a.Column when  LIKE '%Moderate to severe aortic stenosis%' THEN 'Moderate to Severe'
            when  LIKE '%Severe aortic stenosis with%' THEN 'Severe'
            when  LIKE '%moderate aortic stenosis present%' THEN 'Moderate' else ' ' end)
       from MyTable a

请帮助

您的查询中存在语法错误:

SELECT 
  CASE 
     WHEN a.Column LIKE '%Moderate to severe aortic stenosis%' THEN 'Moderate to Severe'
     WHEN a.Column LIKE '%Severe aortic stenosis with%' THEN 'Severe'
     WHEN a.Column LIKE '%moderate aortic stenosis present%' THEN 'Moderate' else ' ' 
  END
FROM 
 MyTable a

字段a。与LIKE比较时,列应出现在每个后面。

查询中存在语法错误:

SELECT 
  CASE 
     WHEN a.Column LIKE '%Moderate to severe aortic stenosis%' THEN 'Moderate to Severe'
     WHEN a.Column LIKE '%Severe aortic stenosis with%' THEN 'Severe'
     WHEN a.Column LIKE '%moderate aortic stenosis present%' THEN 'Moderate' else ' ' 
  END
FROM 
 MyTable a

字段a。当与LIKE比较时,列应该出现在每个之后。

如果看不到错误消息,很难判断问题是什么

但我怀疑你想这样写:

SELECT CASE when a.Column LIKE '%Moderate to severe aortic stenosis%' THEN 'Moderate to Severe'
            when a.Column LIKE '%Severe aortic stenosis with%' THEN 'Severe'
            when a.Column LIKE '%moderate aortic stenosis present%' THEN 'Moderate' 
            else ' ' 
       end
       from MyTable a

我已经将a.列移到case语句的when部分。我认为只有在进行相等比较而不是模糊匹配时,才能将其移到外部。

如果看不到错误消息,很难判断问题出在哪里

但我怀疑你想这样写:

SELECT CASE when a.Column LIKE '%Moderate to severe aortic stenosis%' THEN 'Moderate to Severe'
            when a.Column LIKE '%Severe aortic stenosis with%' THEN 'Severe'
            when a.Column LIKE '%moderate aortic stenosis present%' THEN 'Moderate' 
            else ' ' 
       end
       from MyTable a

我已经将a.列移到case语句的when部分。我认为只有在进行平等比较而不是模糊匹配时,才能将其移到外部。

我女儿出生时患有中度至重度主动脉狭窄。继续努力:我女儿出生时患有中重度主动脉狭窄。继续努力:@Jim列应该在每一个不完全正确的时候出现。For equality conditions=只允许有一次:case some col当1时'foo'当2时则'bar'否则'foobar'结束为有效SQL。但这只适用于与=的比较,不适用于其他任何情况,这就是为什么for LIKE列必须是repeated@Jim列应该出现在不完全为真的每个时间之后。For equality conditions=只允许有一次:case some col当1时'foo'当2时则'bar'否则'foobar'结束为有效SQL。但这只适用于与=的比较,不适用于其他任何情况,这就是为什么必须重复for LIKE列的原因