J'ai une instruction SQL Select où je dois retourner certaines valeurs en fonction d'une condition. J'ai besoin de renvoyer plusieurs valeurs à chaque fois, mais ma compréhension de l'instruction Case est que vous ne pouvez renvoyer qu'une seule valeur pour chaque cas. Je suis en train de contourner ce problème en utilisant les instructions UNION pour le moment, mais tout semble un peu lourd - y at-il une meilleure façon de faire cela? Fondamentalement, j'ai un tas d'invites, chacune avec une réponse de "Oui", "Non" ou "Dans l'avenir" (J'ai effectivement plus de réponses, mais je vais juste utiliser 3 pour l'exemple pour le garder court!) - J'ai besoin de produire une colonne pour chaque type de réponse, avec 1 comme valeur pour la réponse appropriée, et 0 pour tous les autres. Il est sans doute plus faciles à comprendre si vous regardez le SQL ...SQL Server - Définition de plusieurs valeurs dans une instruction de requête?
requête Ma (simplifiée) ressemble à ceci:
SELECT branch,
promptType,
response,
1 AS 'Yes',
0 AS 'No',
0 AS 'Not Discussed'
FROM prompts
WHERE response = 'Y'
UNION
SELECT branch,
promptType,
response,
0 AS 'Yes',
1 AS 'No',
0 AS 'Not Discussed'
FROM prompts
WHERE response = 'N'
UNION
SELECT branch,
promptType,
response,
0 AS 'Yes',
0 AS 'No',
1 AS 'Not Discussed'
FROM prompts
WHERE response = 'D'
Intéressant, je vais essayer! N'a pas pensé à cela, merci :-) – TabbyCool
Acceptée comme meilleure réponse, la requête qui en résulte est beaucoup plus maintenable que ce que j'avais à l'origine. – TabbyCool