如何组合多个where(和/)语句?

时间:2018-01-15 20:28:15

标签: sas

我可以让我的代码工作,但前提是我把它分成两个数据步骤。当我结合时,我得到一个空集。最终我需要一个月的数据,但只需要包含6个关键字之一的记录。

不起作用的代码示例:

data d_prep;

    set DataTable;
    where
                    (CREATIONTIME ge "01DEC2017"d) and (CREATIONTIME le "31DEC2017"d)

                    and

                    (TEXT           contains    'Initialize VNC'
                or  TEXT            contains    'FT-Download'
                or  TEXT            contains    'FT-Upload'
                or  TEXT            contains    'Remote Session'
                or  TEXT            contains    'Login of user'
                or  TEXT            contains    'Create AdHoc-Action');
run;

这给了我零观察。但是,如果我分成两个步骤,我就可以开始工作了:

data d_prep;

    set DataTable
    where
                    (CREATIONTIME ge "01DEC2017"d) and (CREATIONTIME le "31DEC2017"d);

run;

data d_prep_1;

    set d_prep;
    where       
                    TEXT            contains    'Initialize VNC'
                or  TEXT            contains    'FT-Download'
                or  TEXT            contains    'FT-Upload'
                or  TEXT            contains    'Remote Session'
                or  TEXT            contains    'Login of user'
                or  TEXT            contains    'Create AdHoc-Action';      

    run;

1 个答案:

答案 0 :(得分:0)

美好的一天,因为你在环境中使用,我发现很酷的功能?它基本上包含:

data wanted; 
    set begin; 
    where var1 <10000 and var2=2016 and (TEXT  ? 'mobile' or TEXT ? 'scout'); 
run;

我用数据对此进行了测试,似乎正在运行。

检查SaS documentation是否有这个技巧。