如何解决使用 IF、THEN DO 将此 SAS 代码转换为 SQL 脚本的 SQL case 语句
我需要在工作中执行此操作,因为我们正在将一些 SAS 程序转换为 sql 作为正在进行的项目的一部分。这是我需要更改为 sql case 语句的 SAS 代码:
if Patients1 in (08,09,10) or (Patients1=41 and HospAttend=' Yes') then do;
if Patients2 ne 23 then AdmitResult='1. Patient Type A';
else if Patients2 =23 then AdmitResult='2. Patient Type B';
end;
非常感谢任何帮助!
解决方法
作为 case
表达式,这将是:
(case when Patients1 in ('08','09','10') or
(Patients1 = '41' and HospAttend = ' Yes')
then (case when Patients2 <> 23 then '1. Patient Type A';
else '2. Patient Type B'
end)
end) as AdmitResult;
注意:Patients1
上的前导零表明这些值是字符串。如果它们是数字,请删除单引号和前导零(在这种情况下前导零会产生误导)。
此外,' Yes'
中的空格很有意义,您可能并不真正需要它。字符串通常不以空格开头。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。