sql >> Database >  >> RDS >> Sqlserver

SQL Server ROW_NUMBER gedrag

U hoeft alleen de WHERE . te verplaatsen clausule toe aan de innerlijke vraag.

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;

U heeft geen toegang tot het RowNum alias in de buitenste versie van de query omdat de alias nog niet bestaat. SELECT wordt op een na laatste geparseerd, vóór ORDER BY . WHERE wordt verwerkt vóór SELECT .



  1. Realtime operationele analyse en niet-geclusterde kolomopslagindex

  2. Hoe installeer en gebruik ik MySQLdb voor Python 3 op Windows 10?

  3. Seconden veranderen in een tijdwaarde in MySQL

  4. Genereer automatische ID in postgresql