我想在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
请帮忙
答案 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
之后。