我有一个名为ANES.ANESTH_COMMENTS的列,其中包含非结构化的注解。如果ANES.ANESTH_COMMENTS有一些“Approved”、“Either”、“yes”、“Either”或“verified”的变体,我希望名为STATUS的列的值为“Approved”。如果ANES.ANESTH_COMMENTS包含“Denied”、“Not approved”、“no”或“declined”的变体,则STATUS为“Denied”。
我一直遇到这样的问题:由于大小写敏感,逗号,空格,子字符串前后的字符,子字符串被遗漏了。例如,当我使用'%Approved%'时,'approved'将丢失,而当我使用'%Denied %'时,'Denied,'将丢失。
在我的select子句中,我有以下内容:
,CASE
WHEN ', ' + anes.anesth_comments +',' LIKE '%, approve,%'
or ', ' + anes.anesth_comments +',' LIKE '%, yes,%'
or ', ' + anes.anesth_comments +',' LIKE '%, either,%'
or ', ' + anes.anesth_comments +',' LIKE '%, verified,%'
THEN 'Approved'
when ', ' + anes.anesth_comments +',' LIKE '%, denied,%'
or ', ' + anes.anesth_comments +',' LIKE '%, not approved,%'
or ', ' + anes.anesth_comments +',' LIKE '%, no,%'
or ', ' + anes.anesth_comments +',' LIKE '%, declined,%'
then 'Denied'
else 'Not specified'
END AS status
我犯了错误。
我以前有过这个,但它没有捕捉到不同的变化:
case
when anes.anesth_comments like '%Approved%'
or anes.anesth_comments like '%approved%'
OR anes.anesth_comments like '%APPROVED%'
or anes.anesth_comments like '%: yes%'
or anes.anesth_comments like '%: Yes%'
or anes.anesth_comments like '%: YES%'
or anes.anesth_comments like '%Approve%'
or anes.anesth_comments like '%approve%'
or anes.anesth_comments like '%Either%'
or anes.anesth_comments like '%EIther%'
or anes.anesth_comments like '%yes%'
or anes.anesth_comments like '%verified%'
then 'Approved'
when ser.name = 'Bariatrics' or
anes.anesth_comments like '%Denied%'
or anes.anesth_comments like '%denied%'
or anes.anesth_comments like '%DENIED%'
or anes.anesth_comments like '%NOT APPROVED%'
or anes.anesth_comments like '%: No%'
or anes.anesth_comments like '%: no%'
or anes.anesth_comments like '%: NO%'
or anes.anesth_comments like '%: DENIED %'
or anes.anesth_comments like '% Declined%'
then 'Denied'
else 'Not specified'
end as status
我最大的问题是在子串前后有单词或字符时捕捉它。此外,当子字符串前后有标点符号或空格时。
我感谢任何帮助!
注解通常超过200个字符,并且遵循彼此不同的语法
1条答案
按热度按时间ogq8wdun1#
如果要使用
like
运算符,请使用upper()
或lower()
。下面是基本情况表达式的显示方式:如果只是简单地将
%YES%
或%NO%
添加到表达式中,您可能会遇到问题,因此您应该查看示例并确定在表达式中包含Yes/No的最佳方式。您可能需要添加其他条件,例如:你应该试着找到一个更好的词,可以沿着是/否为您的条件。