在我的情況下,如何為具有指定值的行分配連續 ID,Identifier理想情況下按升序排列Value?
該表應如下所示:
Identifier ID Name Value
identifier1 1 example1 value100
identifier1 2 example2 value200
identifier1 3 example3 value400
identifier2 1 example3 value100
identifier2 2 example5 value500
identifier3 1 example11 value600
identifier3 2 example12 value800
到目前為止,我的代碼只為整個表提供了一個連續的 ID #Temp:
CREATE TABLE #Temp (
Identifier NVARCHAR(256)
, ID INT NOT NULL IDENTITY( 1, 1)
, Name NVARCHAR(256)
, Value NVARCHAR(256)
)
WHILE Condition
BEGIN
SELECT @Identifier = Identifier (..)
SELECT @Table = Table (..)
SET @Sql = N'
SELECT
''' @Identifier '''
, Name
, MAX(Value)
FROM ' @Table ' WITH (NOLOCK)
GROUP BY Name
ORDER BY Name
'
INSERT INTO #Temp
EXEC ( @Sql )
END
uj5u.com熱心網友回復:
看起來您正在嘗試為具有相同識別符號的每組行分配連續的 ID。您只需要 ROW_NUMBER()
使用 ROW_NUMBER() 添加 ID
SELECT ID = ROW_NUMBER() OVER (PARTITION BY Identifier ORDER BY [Value]),*
From YourTable
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/425370.html
