2013-02-11 10 views

Antwort

15

ANSI/ISO SQL: 2003 eingeführt Windowing-Funktionen:

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 diese Syntax, da SQL Server 2005. http://msdn.microsoft.com/en-us/library/ms189798(v=sql.90).aspx

ANSI/ISO SQL unterstützt hat: 2008 eingeführt, um eine einfachere Syntax für FETCH FIRST, die mehr analog zu Microsoft/Sybase TOP Syntax:

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

Microsoft unterstützt diese Syntax noch nicht. Siehe auch http://en.wikipedia.org/wiki/Select_(SQL)#Limiting_result_rows

Wenn Sie immer noch mit Microsoft SQL Server 2000, sollten Sie eine Frage las ich eine Weile geschrieben zurück zu „Paging“ Stil-Abfragen zu tun: Emulate MySQL LIMIT clause in Microsoft SQL Server 2000

+3

ich nicht einmal wusste, dass ROW_NUMBER() OVER war ANSI SQL? – Andrew