Coo*_*der 3 sql t-sql sql-server common-table-expression
我有一个像这样的值表:
CREATE TABLE
(
Name1 VARCHAR (50),
Name2 VARCHAR (50),
Sequence INT
)
Run Code Online (Sandbox Code Playgroud)
在这张表中,我有这样的行
'Bob', 'Jones', 1
'James','Ant', 2
Run Code Online (Sandbox Code Playgroud)
我想要根据Name2列的顺序更新UPDATE(UPDATE SET)序列的最佳方法,因此当重新排序时,值为:
'James','Ant', 1
'Bob', 'Jones', 2
Run Code Online (Sandbox Code Playgroud)
我很确定这可以通过CTE的ROW_NUMBER OVER()样式完成,但不确定确切的语法.
您可以更新CTE:
WITH OrderedT AS
(
SELECT Sequence,
ROW_NUMBER() OVER (ORDER BY Name2, Name1) as rn
FROM T
)
UPDATE OrderedT
SET Sequence = rn;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1719 次 |
| 最近记录: |