SAS语法要求选择

时间:2018-11-20 21:55:02

标签: syntax sas quotes proc-sql where-in

我不确定如何在SAS中的proc sql内部更正语法。我的代码如下所示:

proc sql;
    create table HI
    as select [columns]
from [table]
where column1 not in ('..', '..', '..') /*This has no errors*/
AND column2 in ('...', '...', '...') /*This has no errors*/
AND column3 in (('...','...','...',.......)
    or column3 like ('J%')) /*This AND statement gives the errors*/

第一个错误是它正在期望SELECT并为column3上的条件加了下划线“ ...”。 (错误79-322)

下一个错误是OR语句之前第3列条件的结尾。它表示期望以下之一:带引号的字符串!,!!,&,*,**,+,',',-,/,<,<=,<>,=,>,> =,?,.....(错误22-322)

然后还有两个错误,它们表明无法识别该符号,另一个错误是该语句将被忽略。 -但我认为如果其他方面都得到纠正,这些问题也将得到纠正。

我们将不胜感激:)

3 个答案:

答案 0 :(得分:2)

将最后2行更改为

 AND (column3 in ('...','...','...',.......)
or column3 like ('J%')) 

/* example*/
 proc sql;
create table HI
as select *
 from sashelp.cars
 where make not in ('Acura', 'Audi') /*This has no errors*/
  AND Type in ('SEDAN', "Sports") /*This has no errors*/
 AND (Origin in ('Asia','Europe')
  or Origin like ('U%')) ;

答案 1 :(得分:0)

使用查找运算符

AND column3 in (('...','...','...',.......)
or (find(column3,J)>0 and substr(column3,1,1)='J') /*Making sure first char is J*/

答案 2 :(得分:0)

为column3条件添加一对括号 像这样

AND (column3 in (('...','...','...',.......)
or column3 like ('J%'))) /*This AND statement gives the errors*/