ANSI SQL версия SELECT TOP 1
существует ли ANSI SQL-совместимая версия SQL SERVER SELECT TOP n
?
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