sql >> Databasteknik >  >> RDS >> Sqlserver

Använder rankningsfunktionshärledd kolumn i where-satsen (SQL Server 2008)

Du måste flytta WHERE-operatorn ovanför projektlistan där kolumnen RowNumber skapas. Använd en härledd tabell eller en CTE:

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

motsvarande CTE är:

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


  1. SQL-fråga har fastnat i statistiktillstånd

  2. Vad är en en-till-en relation i en databas?

  3. Är det möjligt att se Oracle-användartabellprivilegier utan att ha DBA-behörighet?

  4. PHP PDO::lastInsertId() returnerar 0