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

Verwenden der von der Rangfolgefunktion abgeleiteten Spalte in der Where-Klausel (SQL Server 2008)

Sie müssen den WHERE-Operator nach oben verschieben die Projektliste, in der die RowNumber-Spalte erstellt wird. Verwenden Sie eine abgeleitete Tabelle oder einen CTE:

SELECT * 
  FROM (
   SELECT *, ROW_NUMBER() OVER (...) as RowNumber
   FROM ...) As ...
 WHERE RowNumber = ...

der äquivalente CTE ist:

WITH cte AS (
SELECT *, ROW_NUMBER() OVER (...) as RowNumber
       FROM ...)
SELECT * FROM cte 
WHERE RowNumber = ...