微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 IF、THEN DO 将此 SAS 代码转换为 SQL 脚本的 SQL case 语句

如何解决使用 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 举报,一经查实,本站将立刻删除。