我不确定如何在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)
然后还有两个错误,它们表明无法识别该符号,另一个错误是该语句将被忽略。 -但我认为如果其他方面都得到纠正,这些问题也将得到纠正。
我们将不胜感激:)
答案 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*/