14

SQL SERVER の ANSI SQL 準拠バージョンはありますSELECT TOP nか?

4

2 に答える 2

18

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 では、より単純な の構文が導入されました。これは、Microsoft/Sybase の構文FETCH FIRSTにより類似している可能性があります。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 を使用している場合は、「ページング」スタイルのクエリの実行について、私がしばらく前に投稿した質問を読む必要があります: Emulate MySQL LIMIT clause in Microsoft SQL Server 2000

于 2013-02-11T00:37:47.883 に答える