gpt4 book ai didi

sql - 如何在sql中实现do-while循环

转载 作者:行者123 更新时间:2023-12-01 19:40:07 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何在 TSQL 中实现它

do 
update stuff set col = 'blah' where that_row = 'the right one'
select trash from stuff ...
until some_condition

Transact-SQL 提供的唯一迭代控制流语句是 while(条件)语句,它首先评估条件,如果条件为真,则执行该语句。

我正在考虑这样的场景:在表上执行 UPDATE 语句,直到触发某些条件并实现最后执行的 UPDATE。

最重要的是,我正在寻找解决这个问题的不太脏的方法(在 WHILE 之前复制 UPDATE 对我来说没有太大意义,因为 UPDATE 句子可以任意长且复杂)

<小时/>

编辑:我试图解决的问题涉及同一个表下的多个 UPDATE 语句,每个语句都获取并转换前一迭代中的值。这是不可能仅用一个大的 UPDATE 语句来完成的,因为每一行只会被评估和更新一次,所以循环是我能找到让这个困惑工作的唯一方法。

最佳答案

这实际上是一个 Do-While 循环:

WHILE (1=1)
BEGIN

-- Do stuff...

IF (some_condition is true)
BREAK;

END

但正如 @Joel Coehoorn 指出的,始终首先尝试使用基于集合的方法。如果我想不出使用集合运算来解决问题的方法,我只会诉诸循环。

关于sql - 如何在sql中实现do-while循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1512726/

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