Ist es möglich, Datensätze in SQL Server mithilfe eines Ergebnisausdrucks (Gewichtsklasse) aus einem CASE
Ausdruck in der WHERE
-Klausel zu filtern? Ich kann sie nicht arbeiten, weil ich einen Fehler zu sagen:Verwenden Sie "Ergebnis Ausdruck" aus CASE-Ausdruck in WHERE-Klausel
Ungültiger Spaltenname '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
Dies ist, wie ich will:
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'
Diese Antwort ist nicht wirklich korrekt, da OP einen Alias verwendet. Der Unterschied besteht darin, dass Sie eine Unterabfrage verwenden –