繁体   English   中英

如何将ROW_NUMBER()分配给列?

[英]How to assign ROW_NUMBER() to a column?

读完这个问题后 ,我有另一个类似的问题。 有一种简单的方法可以使这个SQL语句工作吗?

update [Insurances] set [RowNo]=ROW_NUMBER() over (order by [RowNo])

我有一个RowNo列,我想在删除记录时更新。

UPDATE t1 
SET t1.RowNo = s.RowNo  
FROM  [Insurances] t1
INNER JOIN
(
     SELECT Id, ROW_NUMBER() OVER( ORDER BY Somefield DESC) RowNo
     FROM Insurances
) s ON t1.Id = s.Id

我会将表连接到子查询(不确定您是否可以在SQL Server中执行此操作)或创建视图并将表连接到更新中的表:

CREATE VIEW InsurancesView AS
SELECT insuranceID, ROW_NUMBER() OVER ( ORDER BY RowNo ) AS newRowNo
  FROM Insurances;

(假设您有一个名为insuranceID的主键)

UPDATE Insurances AS i
 INNER JOIN InsurancesView AS iv
    ON i.insuranceID = iv.insuranceID
   SET i.RowNo = iv.newRowNo;

希望这可以帮助。

WITH cte AS
(
SELECT Id, ROW_NUMBER() OVER(ORDER BY Name ) RowNo FROM lu_Domain
)
UPDATE dbo.lu_Domain
SET SortOrder = cte.RowNo
FROM dbo.lu_Domain d
INNER JOIN cte ON cte.id = d.Id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM