我必须更新SQL Server 2005中的表中的多行(29).
SELECT * from tblState ORDER BY StateCode ASC.
Run Code Online (Sandbox Code Playgroud)
在这个表中有一个整数列,我需要分配从1到29开始的数字.例如
BEFORE
A 3
B 6
C 2
D 1
Run Code Online (Sandbox Code Playgroud)
AFTER
A 1
B 2
C 3
D 4
Run Code Online (Sandbox Code Playgroud)
如何有效地使用递增的序列号更新每一行?
WITH
sequenced_data AS
(
SELECT
ROW_NUMBER() OVER (ORDER BY StateCode ASC) AS sequence_id,
*
FROM
tblState
)
UPDATE
sequenced_data
SET
integer_column = sequence_id
Run Code Online (Sandbox Code Playgroud)
当你要求循环时,我猜你可能不理解这段代码.
因此,我强烈建议您创建一个虚拟表来使用它,既可以了解它的工作原理,也可以确保它能够满足您的需求.
WITH语句类似于子查询 ROW_NUMBER()创建您想要的顺序ID | 归档时间: |
|
| 查看次数: |
563 次 |
| 最近记录: |