SQL: puis-je annuler une condition dans une clause where?
Je veux vérifier si un booléen est vrai, de décider ensuite dans la clause where quelle condition d'utilisation.
Dire la variable booléenne est @checkbool:
SELECT *
FROM TableA A
WHERE
--if @checkbool is true, run this
A.Id = 123
--if @checkbool is false, run this
A.Id <> 123
Est-il un moyen de nier un état? Comme en C++, vous pouvez le faire si !(condition).
Si non, quelle est la meilleure façon de résoudre ce problème?
Merci!
si la condition dans sql est appelé CAS OÙ ...
OriginalL'auteur Lok | 2013-08-08
Vous devez vous connecter pour publier un commentaire.
SQL est l'équivalent de
!
en C estNOT
. Cependant, dans votre cas, vous voulez quelque chose d'autre: vous avez besoin de construire un état qui décide entre les deux choix en fonction de la valeur de@checkbool
, comme ceci:OriginalL'auteur dasblinkenlight
OriginalL'auteur Roman Pekar
Voici une solution:
Voici un autre en utilisant la Clause where:
Tout ce que vous mettez dans la clause where doit être sous la forme d'une expression. Ainsi, la solution dans ce cas est d'écrire la condition sous la forme d'une expression.
Espère que cette aide. 🙂
OriginalL'auteur Mikhael Loo
Si checkbool est un coumn, alors quelque chose comme cela va faire.(Pas dans la bonne syntaxe SQL)
Si checkbool n'est pas un cloumn, remplacer A. checkbool avec la valeur de checkbool.
ici est la bonne SQL
OriginalL'auteur Vishnuprasad R
Vous pouvez utiliser DANS la clausule ou même le != l'opérateur, comme:
ou
OriginalL'auteur Rafael