모두 풀어봤던 조건이고, 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;
'Coding_Test 연습 > Oracle' 카테고리의 다른 글
[프로그래머스] (Oracle) LV1 최댓값 구하기 (0) | 2022.10.10 |
---|---|
[프로그래머스] (Oracle) LV1 모든 레코드 조회하기 (0) | 2022.10.10 |
[프로그래머스] (Oracle) LV1 강원도에 위치한 생산공장 목록 출력하기 (0) | 2022.10.10 |
[프로그래머스] (Oracle) LV1 이름이 없는 동물의 아이디 (0) | 2022.10.10 |
[프로그래머스] (Oracle) LV1 역순 정렬하기 (0) | 2022.10.10 |