gpt4 book ai didi

SQL Server循环并插入sql

转载 作者:行者123 更新时间:2023-12-02 06:21:09 25 4
gpt4 key购买 nike

我需要在 SQL 中运行一个循环。由于某些奇怪的原因,谷歌这有点困难。在 SQL Server 中,我只是将其放在 SQL Server Managment Studio 的查询编辑器中

DECLARE @z_start INT
SET @z_start = 0
DECLARE @z_end INT
SET @z_end = 0

WHILE (@z_start <= 14) BEGIN
IF(@z_start != 0 AND @z_end != 14)
WHILE (@z_end <= 14) BEGIN
INSERT INTO [campusMap].[dbo].[zoom_levels] ([zoom_start],[zoom_end]) VALUES (@z_start,@z_end)
SET @z_end = @z_end + 1
END
SET @z_start = @z_start + 1
END
END

我想要做的就是设置zoom_start和zoom_end,使(0,0)到(14,14)仅跳过(0,14),因为它已经在表中了。

我想我已经很接近了。有谁知道哪里下车了?谢谢。干杯-杰里米

最佳答案

您可以使用 CTE(或预先存在的数字表)并一次添加您需要的所有行,而不是执行嵌套循环并一次插入每一行:

;WITH Numbers (Number) AS 
(
SELECT 0
UNION ALL
SELECT 1 + Number FROM Numbers
WHERE 1 + Number <= 14
)
INSERT INTO [campusMap].[dbo].[zoom_levels] ([zoom_start],[zoom_end])
SELECT n1.Number, n2.Number
FROM
Numbers n1 CROSS JOIN
Numbers n2
WHERE
NOT (n1.Number = 0 AND n2.Number = 14)

SQL 中基于集合的操作通常比过程化的逐行方法更清晰、更容易理解。

关于SQL Server循环并插入sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9875909/

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