Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL:Verwenden Sie ein berechnetes Feld aus dem SELECT in der WHERE-Klausel

Verwenden Sie einen CTE (Common Table Expression) – eine Art „Inline“-Ansicht nur für die nächste Anweisung:

;WITH MyCTE AS
(
    SELECT 
        RANK() OVER(PARTITION BY XXX ORDER BY yyy,zzz,oooo) as ranking, 
        * 
    FROM SomeTable
) 
SELECT * 
FROM MyCTE
WHERE ranking = 1 --> this is now possible!