2016-07-29 10 views
0

임이 쿼리에 문제가있는 경우 두 번째 OR 조건을 인식하지 못하고 그 이유를 알지 못합니다. Sql 인식하지 못함 또는 조건

select * 
from afip_inctascli 
WHERE UCASE(COALESCE(Cliente,'N')) = 'N' OR 
UCASE(Cliente) = 'S' AND 
(TipoCta_Host IS NULL OR 
NroCuenta IS NULL OR 
UCASE(RTRIM(COALESCE(Estado,'C'))) <> 'D' OR 
UCASE(RTRIM(COALESCE(Estado,'C'))) <> 'A') 

이 특정 OR UCASE(RTRIM(COALESCE(Estado,'C'))) <> 'A')

답변

2

내가 당신이 원하는 것은 추측하고있다 : 두 번째 다음에

WHERE UCASE(COALESCE(Cliente, 'N')) IN ('S', 'N') AND 
     (TipoCta_Host IS NULL OR 
     NroCuenta IS NULL OR 
     UCASE(RTRIM(COALESCE(Estado,'C'))) NOT IN ('A', 'D') 
    ) 

내가 처음 두 가지 조건이 하나 있어야하는 추측하고있어.

UCASE(RTRIM(COALESCE(Estado,'C'))) <> 'D' OR 
    UCASE(RTRIM(COALESCE(Estado,'C'))) <> 'A' 

이 하찮게 사실이다 :

두 번째 부울 표현식이 논리를 가지고있다. 어떤 일이 'D'과 동일하면 분명히 'A'과 같지 않습니다.

관련 문제