Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Eliminating WHERE clauses with NOT
Message
De
06/11/2014 12:32:31
 
 
À
05/11/2014 01:58:50
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Syntaxe SQL
Versions des environnements
SQL Server:
SQL Server 2012
Application:
Web
Divers
Thread ID:
01610458
Message ID:
01610593
Vues:
40
>I think the second statement needs parentheses. Without, the ANDs will be executed before the ORs
>
>http://msdn.microsoft.com/en-us/library/ms190276.aspx
>
>Your statement
>
>SELECT Client.Numero FROM Client (NOLOCK)
> WHERE (Client.ModDate>=@ModDate OR Client.NoStatus<>@NoStatus) AND
>  (Client.ModDate>=@ModDate2 OR Client.NoStatus<>@NoStatus2) AND
>  (Client.ModDate>=@ModDate3 OR Client.NoStatus<>@NoStatus3)
>
>
>without parentheses would be
>
>SELECT Client.Numero FROM Client (NOLOCK)
> WHERE Client.ModDate>=@ModDate OR Client.NoStatus<>@NoStatus AND
>  Client.ModDate>=@ModDate2 OR Client.NoStatus<>@NoStatus2 AND
>  Client.ModDate>=@ModDate3 OR Client.NoStatus<>@NoStatus3
>
>
>and is the same as
>
>
>SELECT Client.Numero FROM Client (NOLOCK)
> WHERE Client.ModDate>=@ModDate 
>      OR ( Client.NoStatus<>@NoStatus AND  Client.ModDate>=@ModDate2)
>     OR (Client.NoStatus<>@NoStatus2 AND  Client.ModDate>=@ModDate3 )
>    OR (Client.NoStatus<>@NoStatus3)
>
>
>which is different

Thanks
Michel Fournier
Level Extreme Inc.
Designer, architect, owner of the Level Extreme Platform
Subscribe to the site at https://www.levelextreme.com/Home/DataEntry?Activator=55&NoStore=303
Subscription benefits https://www.levelextreme.com/Home/ViewPage?Activator=7&ID=52
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform