아래 NVL 함수와 ISNULL 함수를 사용한 SQL 문장은 벤더 공통적으로 CASE 문장으로 표현할 수 있다. 아래 CASE SQL 문장의 ㉠안에 들어갈 내용을 작성하시오.
------------------------------ 아 래 ---------------------------
[Oracle 사례]
SELECT PLAYER_NAME 선수명, POSITION, NVL(POSITION,'없음') 포지션
FROM PLAYER
WHERE TEAM_ID = 'K08'
[SQL Server 사례]
SELECT PLAYER_NAME 선수명, POSITION, ISNULL(POSITION,'없음') 포지션
FROM PLAYER
WHERE TEAM_ID = 'K08'
[CASE 문장 사례]
SELECT PLAYER_NAME 선수명, POSITION,
CASE WHEN ( ㉠ )
THEN '없음'
ELSE POSITION
END AS 포지션
FROM PLAYER
WHERE TEAM_ID = 'K08'
[출처] http://www.dbguide.net/da.db?cmd=snb13_view&boardGroupUid=6&boardConfigUid=81&boardUid=152746
* 정답 및 해설 *
정답 : POSITION IS NULL
아래 NVL 함수와 ISNULL 함수를 사용한 SQL 문장은 벤더 공통적으로 CASE 문장으로 표현할 수 있다.
본 문제는 CASE 표현 중 SEARCHED_CASE_EXPRESSION에 들어갈 조건을 문의한 것임
CASE
WHEN CONDITION THEN RETURN_EXPR
ELSE 표현절
END
추가) POSITION = NULL 이라고 하면 안됨!
POSITION IS NULL 과 POSITION=NULL은 다르다.
SELECT PLAYER_NAME 선수명, POSITION,
CASE WHEN POSITION IS NULL
THEN '없음'
ELSE POSITION
END AS 포지션
FROM PLAYER
WHERE TEAM_ID = 'K08';
SELECT PLAYER_NAME 선수명, POSITION,
CASE WHEN POSITION = NULL
THEN '없음'
ELSE POSITION
END AS 포지션
FROM PLAYER
WHERE TEAM_ID = 'K08';