2017-12-28 42 views
1

proc SQL 문의 alsias 이름에 특수 문자 (% 및 공백)가 있어야합니다. 옵션 시저의 SQL의 DQUOTE는 = ANSI 작동합니다 갖는 documention에 따라별칭 Proc에있는 특수 문자 sql-SAS 9.3

proc sql DQUOTE=ANSI; 
create table final_data as 
select a.column1 as XYZ, 
((a.colum2/b.colum2)-1) as "% VS LY" 
from table1 a 
join table2 b on a.colum3=b.colum3; 
quit; 

.. 그러나

http://support.sas.com/documentation/cdl/en/acreldb/63647/HTML/default/viewer.htm#a001393333.htm

, 나는 ERROR SAS 9.3

이 오류를 받고 있어요 : % VS LY 값은 유효한 SAS 이름이 아닙니다.

이 작업을하려면 어떻게해야합니까?

미리 감사드립니다.

답변

1

아마도 더 간단한 해결책은 표준 이름 지정과 SAS 레이블을 사용하는 것입니다. 계산 된 값이 0과 1 사이 인 경우 SAS 형식을 추가 할 수도 있습니다.

((a.colum2/b.colum2)-1) as vs_ly_pct label='% VS LY' format=percent5.2 

당신이 진정으로 비표준 열 이름을 원하는 경우

은 또한 Proc SQL 전에

options validvarname = any; 

을 설정해야합니다.

0

SQL에서 별칭은 변수 참조의 접두어로 변수가 제공되는 입력 테이블 (또는 하위 쿼리)을 지정하는 데 사용됩니다. 귀하의 질문에 ab처럼. 당신이 말하는 것은 변수 NAME입니다.

SAS 변수 이름은 일반적으로 밑줄 및 영숫자로 제한되며 숫자로 시작할 수는 없지만 변수 LABELS는 임의의 문자열이 될 수 있습니다. 이름 뒤에 레이블을 지정할 수 있습니다.

select a.column1 as XYZ 
    , ((a.colum2/b.colum2)-1) as var2 '% VS LY' 

또는 SAS 특정 LABEL= 구문을 사용

select a.column1 as XYZ 
    , ((a.colum2/b.colum2)-1) as var2 label='% VS LY'