ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 오라클 쿼리에 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=1

    from에 서브쿼리를 쓰는 방법등이 있다.

    '프로그래밍 > sql' 카테고리의 다른 글

    mysql 한글  (0) 2019.05.14
Designed by Tistory.