Quelles sont les alternatives pour implémenter la requête suivante :
select *
from table
where isExternal = @type = 2 ? 1 : 0
Quelles sont les alternatives pour implémenter la requête suivante :
select *
from table
where isExternal = @type = 2 ? 1 : 0
Dans SQL Server 2012 vous pouvez utiliser l'option IIF
fonction :
SELECT *
FROM table
WHERE isExternal = IIF(@type = 2, 1, 0)
Notez également qu'en T-SQL, l'opérateur d'affectation (et de comparaison) est simplement =
(et non ==
- c'est du C#)
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
5 votes
Bien sûr, la réponse à la question que vous posez dans votre titre est - bien sûr. Le site
BETWEEN
est défini pour prendre trois arguments. Ce que vous cherchiez était un conditionnel opérateur - qui se produit pour être le seul opérateur défini pour prendre trois arguments défini par la plupart des langages.1 votes
@JFA - non, a Un opérateur ternaire est tout opérateur qui prend trois opérandes. Dans la plupart des langues, si ils n'ont aucun opérateur ternaire, il est courant qu'ils n'en aient qu'un seul, que l'on appelle (généralement) l'opérateur conditionnel. Appeler les choses par le mauvais nom (ou utiliser un nom général alors que vous voulez dire un nom spécifique) peut juste mener à plus de confusion. Pour de plus amples informations, veuillez consulter le ternaire-opérateur wiki tag.
0 votes
@Damien_The_Unbeliever fr.wikipedia.org/wiki/Ternary_operation : voir "L'opérateur ternaire".
0 votes
@TimothyKanski - pensez-vous, compte tenu du contenu et du style de mes commentaires précédents (comme le fait de mettre particulièrement l'accent sur la a ) que je ne suis pas au courant ?
10 votes
Le PO a utilisé le nom commun d'une chose, pas son nom erroné ou trop général. Je ne suis pas d'accord avec votre conclusion selon laquelle les professionnels (pour lesquels ce site a été conçu) seront déroutés par cette situation, alors qu'il s'agit effectivement d'une terminologie courante.
0 votes
@TimothyKanski, bien que Damien puisse passer pour un petit malin, le PO a spécifiquement demandé "un opérateur ternaire" et non "L'opérateur ternaire". ¯ \_ ()_/¯