Q&A

  • mdb에서 이상하게도 <>가 안먹히네요..
아래의 2가지 경우에 모두 똑같은 결과를 창출합니다.

우선 제가 원하는것은 해당 order_ID의 값을 포함하고 Status에 '반품처리' 와 '교환(반입)' 이 두개를 포함 하지 않는 record를 뽑아낼려고 합니다.

하지만 아래 2개의 문장 모두 반품처리와 교환(반입)을 포함하는 Record를 읽어오는 군요.. 정말 답답하기 그지없습니다.  답변 부탁 드립니다.

select * from order_detail where (status <> '반품처리'  and status <> '교환(반입)')
and order_id='2002052019412626'



select * from order_detail where (status not like '*반품처리*' and status not like '*교환(반입)*')
and order_id='2002052019412626'

참고로 위에 것과 전혀 다른 아래 문장도 같은 결과를 창출합니다.
어의 없다. 정말.. 사실 제가 ms-SQL만 쓰다 보니.. mdb에 답답함을..
이로 다 표현 할수가 없네여..

select * from order_detail where (status = '반품처리' and status = '교환(반입)')
and order_id='2002052019412626'
5  COMMENTS
  • Profile
    김경록 2002.05.22 04:32
    혹시.. 님의 DATA에 널스트링이 포함되어 있지 않나 확인해 보시길..

    NULL스트링이 들어 있으면
    이렇게 됩니다.

    select * from 테이블명
    where trim( 테이블명.필드명) = '값'

    하면 될겁니다..

    답이 되었으면..  *^^*;



  • Profile
    어린왕자A 2002.05.22 02:08
    select * from order_detail where (not (status in ('반품처리','교환(반입)'))) and (order_id='2002052019412626')

    반품처리, 교환(반입)에 속해있지 않으면서 ID가 같은 것을 뽑을 때 위와 같은걸 쓰고..

    아시다시피 Like는 문자열중에서 특정 문자열을 뽑을때 쓰는 거겠구..

    아마 '(', ')'를 확실히 쳐주심이 낫지 않을까..생각됩니다.


  • Profile
    Cos Consulting 2002.05.21 11:53
                          ------------------------------


    and 로 쓰셔야죠, or 를 쓰시면 둘중하나만 true 가 돼면 True 가 돼져.


  • Profile
    유현석 2002.05.21 20:23
    똑같은..결과가 나오네여..
  • Profile
    Cos Consulting 2002.05.21 23:02


    안녕하세요 코스입니다.


    위의 sql statement 에서 읽어온다는건..
    status <>  반품처리 나
    status <> 교환(반입)
    둘중의 하나의 값이 false 인거 같군여..
    일단 select distinct status from order_detail 하셔서
    status 에 반품처리 와 교환(반입) 필드데이타가 존재하는지 먼저
    확인해보세요.

    아래의 sql statement 도 같은 result 를 return 합니다.
    select * from order_detail where status not in ('반품처리','교환(반입)')
    and order_id='2002052019412626'