Синтаксис SAS, ожидающий SELECT - PullRequest
0 голосов
/ 21 ноября 2018

Я не уверен, как исправить синтаксис внутри моего proc sql в SAS.Мой код выглядит примерно так:

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 и подчеркивает первый «...» для условия в столбце 3.(Ошибка 79-322)

Следующая ошибка находится в конце условий в столбце 3 перед оператором ИЛИ.Он говорит, что ожидает одно из следующего: строка в кавычках,!, !!, &, *, **, +, ',', -, /, <, <=, <>, =,>,>=,?, ..... (Ошибка 22-322)

Тогда есть еще две ошибки, которые говорят, что символ не распознан, и другая, что оператор будет проигнорирован.- но я полагаю, что это исправит, если другие будут исправлены.

Любая помощь приветствуется:)

Ответы [ 3 ]

0 голосов
/ 21 ноября 2018

изменить последние 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%')) ;
0 голосов
/ 23 ноября 2018

Добавьте пару круглых скобок для условия column3, как это

AND (column3 in (('...','...','...',.......)
or column3 like ('J%'))) /*This AND statement gives the errors*/
0 голосов
/ 21 ноября 2018

Используйте оператор поиска

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