PROC SQL - CASE WHEN
- Article History
- RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
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 문으로 만들어진 새로운 칼럼명의 이름을 지정하는 명령문입니다.