遅い - sqlserver 行番号 表示




SQL問合せの結果セットに行番号を追加する (2)

典型的なパターンは次のようになりますが、実際には順序付けをどのように適用するかを定義する必要があります(表は定義上、順序付けられていない行の袋です)。

SELECT t.A, t.B, t.C, number = ROW_NUMBER() OVER (ORDER BY t.A)
  FROM dbo.tableZ AS t
  ORDER BY t.A;

あなたの質問の変数が表すべきものが何であるかは不明です(一致しません)。

私は単純なselectステートメントを持っています。 私は結果セットの行に番号を付ける一時的な列を追加したいと思います。 私はこれを試した -

declare @num int
set @num = 0;
select t.A, t.B, t.C, (@count + 1) as number
from tableZ as t

すべての行に1を割り当てます。 私は@count = @count + 1を試してみましたが、うまくいきませんでした。 このことをどうやって簡単にするのですか?

ありがとう。


SELECT
    t.A,
    t.B,
    t.C,
    ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS number
FROM tableZ AS t

SQLFiddleの作業例参照してください。

もちろん、行番号付け順序を定義したい場合は、通常のORDER BY句のように、 OVER (ORDER BY (SELECT 1))OVER (ORDER BY tC)と入れ替えるだけです。





sql-server-2005