PROC SQL 의 'CASE WHEN' 문은 조건에 따라 다른 값을 반환하도록 제어하는 구조입니다.
주로, SELECT문에서 사용됩니다.
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
기본적인 syntax는 다음과 같습니다.
WHEN: 조건 값으로, 조건이 참이면 RESULT1 값을 나타냅니다.
THEN: 조건이 참일 때, 반환될 결과를 지정합니다.
ELSE: 모든 조건이 거짓일 때 반환되며 기본 결과를 지정합니다.
END: CASE WHEN 문의 종료를 나타냅니다.
위의 자료는 삼각형 각 변의 길이에 대한 triangles.xlsx데이터입니다.
세 변의 길이가 같다면, 정삼각형 : equilateral
두 변의 길이가 같다면, 이등변 삼각형: isosceles
모든 변의 길이가 다르다면, 부등변 삼각형: scalne
두 변의 길이 합이 다른 한변의 길이보다 작다면 삼각형이 아니다 : not a triangles
삼각형 세변의 길이 데이터인 (칼럼: a,b,c) triangles.xlsx 자료를 CASE WHEN 구문을 이용해 삼각형 유형을 출력하고자 합니다.
[SAS CODE]
FILENAME REFFILE '/home/u45061472/triangles.xlsx';
PROC IMPORT DATAFILE=REFFILE
DBMS=XLSX
OUT=WORK.triangles;
GETNAMES=YES;
RUN;
proc sql;
select
case when a = b and b = c then 'Equilateral'
when a = b or b = c or a = c then 'Isosceles'
when a + b <= c or a + c <= b or b + c <= a then 'not a triangles'
else 'Scalene'
end as New_Column
from work.triangles;
1. FILENAME REFFILE: 데이터 파일의 이름을 지정하는 데 사용되는 코드로 데이터 파일을 참조하고 해당 파일을 프로그램에서 사용할 수 있습니다. "FILENAME"은 파일을 식별하기 위한 논리적 이름이며, "REFFILE"은 해당 파일의 물리적 위치나 경로를 가리킵니다.
2. PROC IMPORT: 외부 데이터 파일을 SAS 데이터 세트로 가져오는 구문입니다.데이터 파일의 형식과 구조에 따라 IMPORT 옵션을 사용하여 데이터를 읽어오고 SAS 데이터 세트로 변환합니다.
3. CASE WHEN ….. ELSE END (AS): 세 변의 길이가 같다면 Equilateral, 두 변의 길이가 같다면 isosceles, 세 변의 길이가 다르면 scalene , 두 변의 길이 합이 다른 한 변의 길이보다 작으면 not a triangle 이란 case 문을 만듭니다.
AS문은 CASE WHEN 문의 옵션으로 CASE 문으로 만들어진 새로운 칼럼명의 이름을 지정하는 명령문입니다.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.