簡體   English   中英

如何將ROW_NUMBER()分配給列

[英]How to assign ROW_NUMBER() to column

我有兩個表UCPTerritoriesInfo

UCP具有TerritoriesIDTerritories

TerritoriesInfo具有IDTerritoriesName

我想用Row_Number()更新TerritoriesID

例如

UCP

TerritoriesID            Territories
1                          NULL
2                          NULL
3                          NULL
4                          NULL
5                          NULL
6                          NULL
7                          NULL

領土信息

ID                 TerritoriesName
1                          A
2                          B
3                          C
4                          D
5                          ES
6                          T
7                          R

首先,我想分配UCP.TerritoriesID = ROW_NUMBERS(),然后我想從TerritoriesInfo.TerritoriesName更新UCP.Territories,其中UCP.TerritoriesID = TerritoriesInfo.ID我嘗試了自動遞增,但是當我使用Delete語句並再次嘗試時,它不起作用然后我嘗試了此查詢,但不起作用

update UCP SET TerritoriesID = ROW_NUMBER() 

由於UCP.TerritoriesIDTerritoriesInfo.ID包含從一開始的序列,而樣本數據中沒有間隙,因此尚不清楚此處的要求是什么。 我最好的猜測是真實的UCP.TerritoriesID數據不是順序的還是不是從一個開始的。

ROW_NUMBER在其OVER子句中需要ORDER BY 我猜測應該根據UCP.TerritoriesID的當前值來分配行號,尚待更多信息:

;WITH numCTE
AS
(   SELECT TerritoriesID, ROW_NUMBER() OVER (ORDER BY TerritoriesID) AS rn
    FROM UCP
)
UPDATE numCTE
SET TerritoriesID = rn

(我假設一旦有了這個,就可以處理UCP.Territories的更新)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM