BookmarkSubscribeRSS Feed

PROC SQL - CASE WHEN

Started ‎03-19-2024 by
Modified ‎03-19-2024 by
Views 1,286

 

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 문의 종료를 나타냅니다.

 

 

 

 image.png

 

 

 

위의 자료는 삼각형 각 변의 길이에 대한 triangles.xlsx데이터입니다.

세 변의 길이가 같다면, 정삼각형 : equilateral

두 변의 길이가 같다면, 이등변 삼각형: isosceles

모든 변의 길이가 다르다면, 부등변 삼각형: scalne

두 변의 길이 합이 다른 한변의 길이보다 작다면 삼각형이 아니다 : not a triangles

 

삼각형 세변의 길이 데이터인 (칼럼: a,b,c) triangles.xlsx 자료를 CASE WHEN 구문을 이용해 삼각형 유형을 출력하고자 합니다.

 

 

 

image (1).png

 

 

 

 

[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 문으로 만들어진 새로운 칼럼명의 이름을 지정하는 명령문입니다.

 

 

 

 image (2).png
[결과]

 

 

Version history
Last update:
‎03-19-2024 08:28 AM
Updated by:
Contributors

sas-innovate-wordmark-2025-midnight.png

Register Today!

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.


Register now!

Article Labels
Article Tags