Подтвердить что ты не робот

ANSI SQL версия SELECT TOP 1

Существует ли версия SQL SERVER SELECT TOP n, совместимая с ANSI SQL <? p >

4b9b3361

Ответ 1

ANSI/ISO SQL: 2003 введено окно функций:

SELECT * FROM (
  SELECT
    ROW_NUMBER() OVER (ORDER BY age ASC) AS rownum,
    person_id,
    person_name,
    age
  FROM person
) AS foo
WHERE rownum <= 3

Microsoft SQL Server поддерживает этот синтаксис с SQL Server 2005. http://msdn.microsoft.com/en-us/library/ms189798(v=sql.90).aspx

ANSI/ISO SQL: 2008 представил более простой синтаксис для FETCH FIRST, который может быть более похож на синтаксис Microsoft/Sybase TOP:

SELECT person_id, person_name, age FROM person
FETCH FIRST 3 ROWS ONLY

Microsoft еще не поддерживает этот синтаксис. См. Также http://en.wikipedia.org/wiki/Select_(SQL)#Limiting_result_rows

Если вы все еще используете Microsoft SQL Server 2000, вы должны прочитать вопрос, который я опубликовал некоторое время, о том, как делать запросы "подкачки": Эмуляция предложения MySQL LIMIT в Microsoft SQL Server 2000