我有一個簡單的select語句。我想添加一個臨時列,它將對結果集中的行進行編號。我試過了 -將行號添加到SQL查詢的結果集中
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語句。我想添加一個臨時列,它將對結果集中的行進行編號。我試過了 -將行號添加到SQL查詢的結果集中
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, number = ROW_NUMBER() OVER (ORDER BY t.A)
FROM dbo.tableZ AS t
ORDER BY t.A;
不知道是什麼你問題中的變量應該表示(它們不匹配)。
SELECT
t.A,
t.B,
t.C,
ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS number
FROM tableZ AS t
見工作示例at SQLFiddle
當然,你可能要定義的行編號順序 - 如果是這樣,只是在正常ORDER BY
條款交換OVER (ORDER BY (SELECT 1))
爲,例如,OVER (ORDER BY t.C)
,等等。
你想如何增加行號?任意?您的查詢沒有ORDER BY,因此,您需要定義您希望訂購的內容。 –
@AaronBertrand - 我只需要將我的行編號。訂單並不是真的有必要。這是否回答你的問題 ? –
因此,您可以隨機應用訂單,並且每次都會以不一致的順序將結果吐出到您的查詢中? –