을 복용하십시오
문제 번호 1은 귀하의 1 = 1이므로 속하지 않으므로 처음에 삭제하면 1 = 1이됩니다 (TYPE _.... .) 그것은 옳지 않다. AND를 제거하려면 제거하십시오. 당신이 실제로 원하는 결과가 무엇인지에 관해서는 당신이 원하는 결과를 더 명확하게 지정해야합니다. 그래서 당신이 더 잘 당신을 도울 수 있습니다.
SELECT * FROM MyTable WHERE
(TYPE_ = 'DepositAccount' AND PRODUCTCODE_ <> 'PABB01' AND PRODUCTCODE_ <> 'PABB05')
OR (TYPE_ = 'DepositAccount' AND PRODUCTCODE_ = 'PCBB02' AND ACCOUNTNUMBER_ = '98')
다음 당신은 acutally 당신이 동일한은 읽기가 좀 더 쉽게 만들 것입니다 원하는하지 않는 것이 아니라 한 번에 다수의 제품 코드를 나열 NOT IN을 사용할 수 있습니다. 그리고 DepositAccount Type은 둘 다에 있기 때문에 자체 조건 일 수 있습니다. 'PCBB02는'01 & 05 당신 아니거나 문은 중복 및 필요는 없습니다 또한 때문 :
SELECT * FROM MyTable WHERE
TYPE_ = 'DepositAccount'
AND PRODUCTCODE_ NOT IN ('PABB01','PABB05')
그리고 당신은 정말 그냥 그런 당신이 할 수있는 02 (98)로 기록하려면 다음과 같이
SELECT * FROM MyTable WHERE
TYPE_ = 'DepositAccount' AND PRODUCTCODE_ = 'PCBB02' AND ACCOUNTNUMBER_ = '98'
귀하의 의견에 여기에 여러 가지 방법이 있습니다. 이해하기 쉽습니다. 조건 앞에 NOT을 사용하면 결과 집합에서 참일 때 제외됩니다. 계좌 번호는 '98'
SELECT * FROM MyTable WHERE
TYPE_ = 'DepositAccount'
AND PRODUCTCODE_ NOT IN ('PABB01','PABB05')
AND NOT (PRODUCTCODE_ = 'PABB02' AND ACCOUNTNUMBER_ = '98')
가 ACCOUNTNUMBER_ 정말 숫자 데이터 형식이 아닌 경우 PRODUCTCODE_ = 'PABB02'는 여전히 반환됩니다 참고? 그렇다면 숫자를 둘러싼 작은 따옴표를 제거해야합니다.
샘플 데이터 및 예상 출력을 표시하십시오. 너 뭐하려고?왜냐하면 당신이 말하지 않기 때문에 우리는 무엇이 잘못되었는지를 짐작할 수 없기 때문입니다. 당신이 적용하려고하는 논리를 설명해야합니다. [** XY 문제는 무엇입니까? **] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) [** 어떻게 -to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t 그리고 [** 시작 **] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-a-public-forum /) 질문 품질을 향상시키고 더 나은 답변을 얻는 방법을 알아보십시오 –
질문 편집 –
원하는 논리를 설명 할 수 있습니까? ? 첫 번째 조건은 두 코드 모두'<> ('PABB01', 'PABB05')'btw이므로 참이어야합니다. 두 조건이 모두 사용하기 때문에 단일 TYPE_ = 'DepositAccount'를 넣을 수 있습니다. –