在任何地方查询使用类似sql的情况下的错误

时间:2014-04-23 20:15:47

标签: sql sqlanywhere

我想在case case语句和特定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

请帮忙

2 个答案:

答案 0 :(得分:3)

如果没有看到错误消息,很难说出问题所在。

但我怀疑你想这样写:

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.Column移动到case语句的when部分。我认为只有在进行相等比较而不是模糊匹配时才能将其移到外面。

答案 1 :(得分:1)

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

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.Column相比,字段WHEN 出现在每个 LIKE之后。