gpt4 book ai didi

SQL Server : loop through every row, 向列添加增量值

转载 作者:行者123 更新时间:2023-12-02 17:29:58 25 4
gpt4 key购买 nike

我刚刚添加了一个新列 Person_Id_HelperMyTable。它应该包含 1、2、3 等,按照表现在排序的顺序。

这就是我想要做的:

DECLARE @i INT = 1, @NumberOfRows INT = SELECT COUNT(*) FROM MyTable 

WHILE(@i <= @NumberOfRows)
BEGIN
-- Person_Id_Helper = @i
-- @i = @i + 1
END

这个怎么写?

最佳答案

我认为,在列中保留排序顺序可能是错误的想法。但是 - 当然! - 在 while 循环中执行此操作是错误的想法。

阅读有关基于行和基于集合的方法的信息。 SQL 对基于集合的思维的需求...

以这个为例,看看如何做到这一点(只需将其粘贴到一个空的查询窗口中并执行,根据您的需要进行调整):

DECLARE @tbl TABLE(SortDate DATE, Inx INT);
INSERT INTO @tbl VALUES({d'2016-01-20'},0)
,({d'2016-01-19'},0)
,({d'2016-01-14'},0)
,({d'2016-01-16'},0);
WITH cte AS
(
SELECT Inx,ROW_NUMBER() OVER(ORDER BY SortDate) AS RN
FROM @tbl
)
UPDATE cte SET Inx=RN;

SELECT * FROM @tbl;

关于SQL Server : loop through every row, 向列添加增量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34895533/

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