Integer type 인 컬럼에 NULL 은 어떤 값으로 비교해야 하나요? 0 1 4,795

by 배움 [SQL Query] oracle sql [2022.11.17 11:56:55]


두 개의 테이블에 각각 데이터를 생성했는데 양쪽 테이블 중에 2개의 칼럼이 데이터 타입이 다릅니다.

A 테이블은 컬럼 a 와 컬럼 b 가 integer 타입이고,

B 테이블의 컬럼 a 와 컬럼 b 가 Varchar2 타입입니다.

A 테이블의 데이터를 B 테이블에 넣을 때 2개의 컬럼은 1 은 Y, 0 은 N, 그리고 Null 이 들어오면 '-' 를 insert 했습니다.

양쪽 테이블의 데이터를 비교하면서 테이블 B에 대해 다음과 같이 데이터 타입의 차이를 감안해서 CASE ... WHEN 을 사용했는데요.

CASE
    WHEN B_INDICATOR = 'Y' THEN 1
    WHEN B_INDICATOR = 'N' THEN 0
    WHEN B_INDICATOR = '-' THEN NULL 
  END AS B_INDICATOR

 

이 때 b_indicator 의 값이 '-' 인 경우 NULL 을 넣으라고 해도 A 와 똑같은 값이 아닌 것으로 나오네요.

이 경우 '-' 이면 어떤 값을 넣어주면 테이블 A 의 integer type 과 같은 값으로 판단하는지 궁금합니다. 초보인데 여기서 자꾸 헤매네요.

검색해도 알 수 없어서 질문 드립니다.

알려주시면 감사하겠습니다. 

 

by 우리집아찌 [2022.11.17 12:33:10]

null 은 = 비교가 안됩니다.

nvl 함수 쓰셔서 치환하셔서 하세요.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입