hsk_tmp 테이블은 이렇게 생겼습니다.
컬럼 AA
--------
.
a
1
b
c
dddd
공백
이렇게 7row 의 데이터가 들어가 있습니다. 공백은 ' ' 입니다.
그 후 이 쿼리를 날리면..
select *
From(
select aa,
case when aa = ' ' then 1
when aa not like '%.%' or aa not like '%1%' or length(aa) < 3
then 2
else 0
end bb
from hsk_tmp
)
where bb = 2
결과가..
aa bb
-------
공백 1
. 2
a 2
1 2
b 2
c 2
dddd 2
이렇게 나오는데요. (공백은 실제 공백 입니다. '공백' 이라는
데이터값이 아닙니다)
aa bb
-------
. 2
a 2
1 2
b 2
c 2
dddd 2
이렇게 나와야 정상 아닌가요??
분명 where bb = 2 조건을 줬건만...!!!!
그런데 웃긴게..
select *
From(
select aa,
case when aa = ' ' then '1'
when aa not like '%.%' or aa not like '%1%' or length(aa) < 3
then '2'
else '0' end bb
from hsk_tmp
)
where bb = '2'
이렇게 case when 의 구분자 값들을 ' ' 처리로 캐릭터 처리를
해주면
aa bb
-------
. 2
a 2
1 2
b 2
c 2
dddd 2
이렇게 제대로 나오네요.
혹시 이유를 아시는분 계시면 답변 부탁드립니다.
|