Est-il possible de filtrer les enregistrements dans SQL Server en utilisant une expression de résultat (weight_class) d'une expression CASE
dans la clause WHERE
? Je ne peux pas le faire fonctionner parce que je reçois une erreur disant:Utiliser expression de résultat à partir de l'expression CASE dans la clause WHERE
nom de colonne non valide 'weight_class'
code:
SELECT
first_name, last_name,
weight_class = CASE
WHEN weight < 172 THEN 'Welterweight'
WHEN weight <= 192 THEN 'Middleweight'
WHEN weight <= 214 THEN 'Light heavyweight'
WHEN weight <= 220 THEN 'Cruiserweight'
ELSE 'Heavyweight'
END
FROM
athletes
Voilà comment je veux faire:
SELECT
first_name, last_name,
weight_class = CASE
WHEN weight < 172 THEN 'Welterweight'
WHEN weight <= 192 THEN 'Middleweight'
WHEN weight <= 214 THEN 'Light heavyweight'
WHEN weight <= 220 THEN 'Cruiserweight'
ELSE 'Heavyweight'
END
FROM
athletes
WHERE
weight_class = 'Cruiserweight'
Cette réponse n'est pas vraiment correcte car OP utilise un alias. La différence est que vous utilisez une sous-requête –