-
오라클 쿼리에 or 을 쓸때 주의사항프로그래밍/sql 2018. 12. 7. 18:19
(select *
from table
where a=1 or b=1;)같은 경우는 결과에 이상이 없으나
위의 결과에 조건을 추가했을때select *
from table
where a=1 or b=1
and c=1위처럼
and가 추가적으로 붙은경우에
c에 해당하는 값이 없어도(결과값이 아무것도 안나와야 할때도) 결과값에는 a=1에 해당하는 값이 나온다.select *
from table
where b=1 or a=1
and c=1의 경우도 마찬가지 (a와 b의 순서만 바꿈)
c에 해당하는 값이 없어도 결과값에는 b=1에 해당하는 값이 나온다.and조건인 c에 해당하는값이 있을경우엔 c에 해당하는 값만 나와야 하는데 사족으로 or 앞에 해당하는 데이터가 딸려나온다.
이를 해결하기위해서는
select *
from table
where (a=1 or b=1)
and c=1나
select *
from (select * from table where a=1 or b=1)
where c=1from에 서브쿼리를 쓰는 방법등이 있다.