아래와 같이 member라는 Table을 생성하고 다음의 데이터 2개를 삽입합니다.
create table member (member_name varchar(30) not null)
insert into member values ('테스트');
insert into member values (' '); // 이 데이터는 NULL이 아닌 스페이스바 1칸 입니다. membrt_name컬럼이 not null이라 가능하죠.
이제 위 member라는 Table을 조회하는데 아래와 같이 조회합니다.
select
CASE
WHEN member_name = ' '
THEN NULL
ELSE member_name
END AS result
from member
member Table을 조회하는데 case문을 사용하여 member_name컬럼에 있는 data 중 스페이스바 1칸이 들어간 row가 있으면 NULL로 치환하고,
그 이외의 모든 data는 그대로 하여 result라는 컬럼이름으로 조회해달라 입니다.
--------------------------------------------------------여기서 질문
AS 는 Alias로 별칭인데 원래 테이블에 있는 컬럼인 member_name을 result라는 별칭을 주어 case문의 결과를 그 컬럼에 보여달라는거죠.
근데 case문에서 스페이스바 1칸 공백을 NULL로 바꿨는데 왜 조회가 되는거죠?
원래 컬럼인 member_name컬럼은 not null 이거든요
조회가 되는 이유가 result라는 컬럼이 member_name이라는 컬럼의 별칭으로 member_name컬럼의 공간을 사용하지만 member_name의 특성인 not null특성은 따라가지 않는건가요?
|