입력된 데이터를 가지고 조회를 통한 자료등록 프로그램을 짜기 위해,
쿼리를 작성하다가, 좀 이상한 점을 발견하게 되었습니다.
인라인 뷰로 조인을 걸면 나오질 않고,
IN 검색어를 사용하면 잘 나오더군요.
두 형태 모두 쿼리문으로는 틀릴 게 없는데, 하나는 나오지 않고, 하나는 나오기 때문에,
좀 이상해서, 질문을 드려보려 합니다.
아직 초보수준이라 뭔가 다른 것 같기는 한데, 왜 그런지가 좀 궁금해서요.
작성할 쿼리문은, 법정동 주소 코드를 조인하여, 입력된 법정동코드에 해당하는 시도/시군구/읍면동 명칭을 조회하는 것입니다.
그런데, 이걸 아래와 같이 짰더니(기타 조건들도 같이 꺼내야 되기 때문에..... )
조회가 되질 않습니다.
select a.law_cd, a.law_sd, a.law_sgg, a.law_emd
from law_addr_tb a,
(SELECT ' 1111015900' AS start_law_cd, '118번지' AS address1_txt,
'1111012600' AS end_law_cd, '' AS address2_txt
FROM DUAL) data_tb
where a.law_cd = data_tb.start_law_cd
그런데, 다음과 같이 쿼리를 짜니 읍면동 명이 조회가 되는군요.
select a.law_cd, a.law_sd, a.law_sgg, a.law_emd
from law_addr_tb a
where a.law_cd IN ('1111015900')
두번째 쿼리가 조회되는 것은 이해하기가 쉽습니다. 그런데, 첫번째 쿼리가 조회가 되지 않는 것은 이해가 되지 않아서요.
제가 모르는 뭔가 있는지가 궁금합니다.
아시는 분이 답변해주시면 정말 감사하겠습니다. ^_^:
|