2016-09-16 4 views
0

다음 코드를 사용하여 abo_id 및 abo_bklantid 값이 일치하지 않는 데이터 집합을 얻으려고합니다.Where 절이 작동하지 않는 것 같습니다.

data set_2 
set final_set; 
where abo_id != abo_bklant_id; 
run; 

이 그러나 다음과 같은 오류를 trows :

ERROR: Syntax error while parsing WHERE clause. 
ERROR: No input data sets available for WHERE statement. 
ERROR 56-185: SET is not allowed in the DATA statement when option DATASTMTCHK=COREKEYWORDS. Check for a missing semicolon in the 
      DATA statement, or use DATASTMTCHK=NONE. 

ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, a numeric constant, a datetime constant, 
      a missing value, INPUT, PUT. 

ERROR 76-322: Syntax error, statement will be ignored. 

내가 잘못 어떤 생각?

답변

0

당신은 또한

data set_2; /* <<< here! */ 
set final_set; 
where abo_id ne abo_bklant_id; /* <<< cannot use != in SAS */ 
run; 

(신용 로버트 S.)에 != 운영자 :-) 첫 번째 줄에 세미콜론을 누락하는 SAS에 유효하지 않습니다.

+3

SAS에는 '! ='연산자가 없습니다. 대신에'^ ='또는'ne' 또는'<>'연산자를 사용하십시오. –

+0

좋은 자리, 답변이 업데이트되었습니다! –

+3

<>를 사용하여 같지 않음을 의미하지 마십시오. 대부분의 SAS는 MAX 운영자이며 NE 운영자는 아닙니다. 0이 -1보다 크기 때문에'-1 <> 0'은 0입니다. 하지만 -1이 0이 아니기 때문에'-1^= 0'은 1입니다. – Tom

관련 문제