gpt4 book ai didi

sql - 如何在 SQL Server 中使用 for 循环

转载 作者:行者123 更新时间:2023-12-02 23:22:13 24 4
gpt4 key购买 nike

我必须更新 SQL Server 2005 中表中的多行 (29)。

SELECT * from tblState ORDER BY StateCode ASC. 

在此表中有一个整数列,我需要分配从 1 到 29 的数字。

BEFORE

A 3

B 6

C 2
D 1

AFTER

A 1
B 2
C 3
D 4

如何有效地用升序序号更新每一行?

最佳答案

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

当您要求循环时,我猜您可能不理解这段代码。

因此,我强烈建议您创建一个虚拟表来使用它,既可以了解它的工作原理,也可以确保它达到您想要/期望的效果。

  • WITH 语句类似于子查询
  • 其中,ROW_NUMBER() 创建您想要的顺序 ID
  • 然后外部查询更新列(虽然它引用了子查询,但真实的表确实得到了更新)

关于sql - 如何在 SQL Server 中使用 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12816272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com