모두 풀어봤던 조건이고, NULL이면 'N'을 출력해라. 는 문제였다.

찾아보니 조건을 걸어 하는 방법이 있었다.


1. DECODE

SELECT DECODE(A, B, C, D)

DECODE()를 이용하여 A == B이면 C 다르면 D를 출력하는 함수이다.

C, D, E, F, G, H ....... 길게 쓸수 있으며 B C로 끊어 switch 처럼 사용할 수 있다.


2. CASE

SELECT CASE 비교할 어트리뷰트 WHEN 조건1 THEN true일때 결과
 WHEN 조건2 THEN true 일때 결과
 ELSE 그 외의 결과 
 END

이때의 조건은 < , > ... 연산이 가능하며 이상 이하 구분할 때 사용하면 편할것 같다.

본인은 DECODE를 사용하여 풀었다.

SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, 
 DECODE(FREEZER_YN, null, 'N', FREEZER_YN) FROM FOOD_WAREHOUSE
 WHERE ADDRESS LIKE '경기도%' ORDER BY WAREHOUSE_ID ASC;

+ Recent posts