データベースが分析関数をサポートしている場合は、分析関数を避ける必要はありません。例:ROW_NUMBER()
SELECT ROW_NUMBER() OVER (ORDER BY [<PRIMARYKEY_COLUMN_NAME>]) AS Number FROM [<TABLE_NAME>]
プレ>構文は
Func([ arguments ]) OVER (analytic_clause)
です。 OVER () に注目する必要があります。この最後の括弧は、行のパーティションを作成し、これらのパーティションに Func() を 1 つずつ適用します。上記のコードでは、行のセット/パーティションが 1 つしかありません。したがって、生成されたシーケンスはすべての行用です。複数のデータセットを作成し、それぞれのシーケンス番号を一度に生成できます。たとえば、同じカテゴリ ID を持つすべての行セットのシーケンス番号を生成する必要がある場合。
Partition By
を追加するだけです このような句(PARTITION BY categoryId ORDER BY [<PRIMARYKEY_COLUMN_NAME>])
.
FROM
の後に注意してください 別の追加のORDER BY
を使用することもできます データを別の方法で並べ替えます。ただし、OVER () には影響しません