Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Поведение на SQL Server ROW_NUMBER

Просто трябва да преместите WHERE клауза към вътрешната заявка.

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;

Нямате достъп до RowNum псевдоним във външната версия на заявката, защото псевдонимът все още не съществува. SELECT се анализира предпоследно, преди ORDER BY . WHERE се обработва преди SELECT .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Неуспешно влизане. Входът е от ненадежден домейн и не може да се използва с Windows удостоверяване

  2. Как мога да вмъкна произволни стойности в таблица на SQL Server?

  3. Как да разбера грешката _exact_ от SQL Server

  4. SQL съединяване срещу периоди от време?

  5. Преобразувайте „datetime“ в „datetime2“ в SQL Server (T-SQL примери)