SELECT ClientID, CompanyName, FirstName, LastName, Street, City
FROM Client
WHERE (CompanyName LIKE '%G%' Or FirstName LIKE '%J%' Or LastName LIKE '%J%' Or Street LIKE '%J%' Or City LIKE '%J%' Or ContactNo LIKE '%0%' AND ClientTypeID = 2) AND CompanyName IS NOT NULL;
Le problème est que vous avez ou des déclarations. Même si CompanyName ne correspond pas à la ligne, LastName peut convenir. Puisque vous utilisez ou est dans votre résultat de filtre sera alors inclus.
Et vous mélangez ou est, et les deux sans aucune parenthèse. Tu ne devrais pas faire ça. Vous devriez écrire huitard:
SELECT ClientID, CompanyName, FirstName, LastName, Street, City
FROM Client
WHERE (CompanyName LIKE '%G%' Or FirstName LIKE '%J%' Or LastName LIKE '%J%' Or Street LIKE '%J%' Or City LIKE '%J%' Or ContactNo LIKE '%0%') AND ClientTypeID = 2;
ou
SELECT ClientID, CompanyName, FirstName, LastName, Street, City
FROM Client
WHERE CompanyName LIKE '%G%' Or FirstName LIKE '%J%' Or LastName LIKE '%J%' Or Street LIKE '%J%' Or City LIKE '%J%' Or (ContactNo LIKE '%0%' AND ClientTypeID = 2);
Voulez-vous des exclure toutes les lignes où 'CompanyName' est nulle? – Mat
OUI! Parce que certains enregistrements n'ont pas de nom de société – TheOxblood