sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server ROW_NUMBER adfærd

Du skal bare flytte WHERE klausul til den indre forespørgsel.

SELECT TeacherID, UniversityID, RowNum FROM
(
    SELECT a.TeacherID, a.UniversityID, ROW_NUMBER() OVER 
     (ORDER BY a.TeacherID) AS RowNum FROM SelectAll a
     LEFT JOIN mp_Ratings r 
     ON a.TeacherID = r.TeacherID 
     WHERE UniversityID = 2
     GROUP BY a.TeacherID, a.UniversityID
) as TeacherInfo WHERE RowNum BETWEEN 10 AND 50;

Du kan ikke få adgang til RowNum alias i den ydre version af forespørgslen, fordi aliaset ikke eksisterer endnu. SELECT er parset næstsidst, før ORDER BY . WHERE behandles før SELECT .



  1. 9 virkelig nyttige MySQL-datofunktioner, der er nemme at huske

  2. com.zaxxer.hikari.pool.PoolInitializationException:Undtagelse under poolinitialisering

  3. Bestem land ud fra IP - IPv6

  4. At få mySQL lagret procedure resulterer i en anden lagret procedure