Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何将行数()分配给列_Sql_Sql Server - Fatal编程技术网

Sql 如何将行数()分配给列

Sql 如何将行数()分配给列,sql,sql-server,Sql,Sql Server,我有两个表UCP,TerritoriesInfo UCP拥有TerritoriesID,地区 TerritoriesInfo拥有ID,TerritoriesName 我想用行号()更新TerritoriesID) 比如说 UCP TerritoriesInfo ID TerritoriesName 1 A 2 B 3

我有两个表
UCP
TerritoriesInfo

UCP
拥有
TerritoriesID
地区

TerritoriesInfo
拥有
ID
TerritoriesName

我想用行号()更新
TerritoriesID

比如说

UCP

TerritoriesInfo

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.TerritoriesID
TerritoriesInfo.ID
在样本数据中包含基于一的序列,因此不清楚这里的要求是什么。我最好的猜测是,实际的
UCP.TerritoriesID
数据要么是非顺序的,要么不是从一开始的

在其
OVER
子句中需要一个
orderby
。我猜应该根据UCP.TerritoriesID的当前值分配行号,等待更多信息:

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

(我假设一旦你有了这个,你就可以处理更新
UCP.territies

,因为
UCP.TerritoriesID
TerritoriesInfo.ID
包含一个基于一个的序列,样本数据中没有空白,不清楚这里有什么要求。我最好的猜测是,实际的
UCP.TerritoriesID
数据要么是非顺序的,要么不是从一开始的

在其
OVER
子句中需要一个
orderby
。我猜应该根据UCP.TerritoriesID的当前值分配行号,等待更多信息:

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

(我假设一旦你有了这个,你就可以处理更新
UCP.territions

使用ROWNUM而不是ROW\u NUMBER()-更新UCP SET TerritoriesID=ROW\u NUM;'“ROW_NUM”不是可识别的内置函数名。@Jimmacauley:这个问题是关于(Microsoft)SQL Server的,而不是Oracle…..无法在SQL中完成?我仍然无法理解这个问题。请使用ROWNUM而不是ROW_NUM()-更新UCP SET TerritoriesID=ROW_NUM;”“ROW_NUM”不是可识别的内置函数名。@Jimmacauley:这个问题是关于(Microsoft)SQL Server的,而不是Oracle…..无法用SQL完成?我仍然无法理解这个问题。窗口函数只能出现在SELECT或ORDER BY子句中。我想用ROW_number()填充TerritoriesID表单ucp若要处理其他问题,窗口函数只能出现在SELECT或ORDER BY子句中。我想用row_number()填充TerritoriesID表单ucp以处理其他问题