如果这是一个重复的问题,我没有查到:(
我有一个看起来像这样的表:
VersionID DocumentID VersionNo
111 12345 1
112 12345 2
113 12345 3
我需要将“VersionNo”列(所有其他列保持不变)的顺序颠倒如下:
VersionID DocumentID VersionNo
111 12345 3
112 12345 2
113 12345 1
我在考虑 CTE 和 ROW_NUMBER() OVER 但无法使其正常工作...
如有任何帮助,我们将不胜感激。
谢谢
最佳答案
试试这个:
SELECT VersionID, DocumentID, ROW_NUMBER() OVER(PARTITION BY DocumentID ORDER BY VersionID DESC) as VersionNo
FROM YOUR_TABLE
如果你需要更新你的表,使用这个:
;WITH CTE AS (
SELECT VersionID, DocumentID, ROW_NUMBER() OVER(PARTITION BY DocumentID ORDER BY VersionID DESC) as VersionNoNew
FROM YOUR_TABLE
)
UPDATE CTE
SET VersionNo = VersionNoNew
关于sql - T-SQL 重新排序表中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10087712/