[SQL 8-2] Using SQL Procedure Options
안녕하세요^^
오늘은 SQL 포로시저 options을 사용하여 절차를 제어해보도록 하겠습니다.
PROC SQL 옵션은 아래의 특징을 제공하며 SQL 절차를 섬세하게 제어할 수 있도록 합니다.
- 코드를 실행하지 않고 syntax checking을 할 수 있습니다.
- 가능한 값 모두에 대해 SQL 문장을 확장시킬 수 있습니다.
- Rows의 수를 제어할 수 있습니다.
- 쿼리 조정을 통해 system utilization statistics를 제공할 수 있습니다.
PROC SQL의 옵션은 위와 같은 코드로 간단히 작성할 수 있습니다.
첨부파일로 올려드리는 두 데이터(PAYROLLMASTER, STAFFMASTER)에서 jobcode를 ‘FA’로 갖고, EMPID가 같은 사람들에 대한 정보 중 10개만 결과로 보는 코드를 작성해보겠습니다.
위의 코드 중 outobs=10 이라는 옵션을 통해, 결과로 나오는 테이블에 10개의 row가 작성된 것을 보실 수 있습니다.
즉, 위와 같이 rows의 수를 제어할 수 있는 옵션을 추가적으로 더 설명해보도록 하겠습니다.
위에서 설명했듯이, OUTBOS=n은 쿼리의 결과에 rows의 수를 n개로 제어합니다.
INOBS=n은 각각의 source table의 rows의 수를 n개로 제어합니다.
또한 NOEXEC는 쿼리를 실행하지 않고 모든 SQL 문장의 syntax를 체크합니다.
또한, 결과를 제어하는 옵션은 아래와 같은 종류들이 있습니다.
option | 효과 |
PRINT | NOPRINT | Report로서 보여지는 SELECT 문장의 결과를 보일 것인지 보이지 않을 것인지 제어합니다 |
NONUMBER | NUMBER | Row number가 쿼리 결과의 첫 번째 column으로 보일 것인지 보이지 않을 것인지 제어합니다 |
NOSTIMER | STIMER | PROC SQL이 SAS log창에 resource utilization statistics를 작성할 것인지 작성하지 않을 것인 것 제어합니다 |
NODOUBLE | DOUBLE | Report가 double-spaced일 것인지 아닌지 제어합니다. 이 옵션은 SAS LISTING 결과에서만 나타납니다 |
NOFLOW | FLOW | FLOW=n | FLOW=n <m> | 문자형 column의 너비를 제어합니다. 이 옵션은 SAS LISTING 결과에서만 나타납니다 |
위의 코드 중 inobs=10 이라는 옵션을 통해, 결과로 나오는 테이블은 payrollmaster 데이터의 조건에 맞는 상위 10개의 row가 작성된 것을 보실 수 있습니다.
INOBS= 옵션은 FROM절에 테이블이 여러 개라면 각각의 테이블에 모두 적용됩니다.
RESET 문장에서 INOBS=MAX를 사용하여 프로시저를 다시 불러들이는 일 없이 모든 관측치를 읽을 수 있습니다.
이상으로 proc sql문장의 옵션에 대해 알아보았습니다.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Early bird rate extended! Save $200 when you sign up by March 31.