让我先说我知道我知道这些循环很糟糕,你不应该在Transact SQL中使用它们。但是,出于某些目的(这些目的无关紧要,所以不要问我“你想做什么!?”)你只需要。我不想,但我得。
反正。有没有办法在T-SQL中使用while循环终止复杂的条件语句?比如,在C#中我只是说(i> -10&& i< 10),因为我希望循环在Sentinel值介于-10和10之间时终止,但我只是......无法弄清楚该怎么做。
这可能非常简单......或者......不可能。请指教。
现在,我刚刚
WHILE @N <> 0
BEGIN
--code and such here
END
答案 0 :(得分:3)
您必须查看WHILE声明的声明:
WHILE Boolean_expression
{ sql_statement | statement_block | BREAK | CONTINUE }
首先,你可以使用复杂的Boolean_expression,如Dan所说:
WHILE @N > -1 AND @N <10
BEGIN
END
如果您想为代码添加更多灵活性,可以将IF与BREAK一起使用,如下所示:
WHILE @N > -1 AND @N <10
BEGIN
-- code
IF (SELECT MAX(ListPrice) FROM Production.Product) > $500
BREAK
END
-- code
END
退出循环或使用CONTINUE跳过一个循环。
答案 1 :(得分:0)
我觉得自己像一个完全白痴。而且我确定我看起来也像。
我尝试了所有这些东西,试图让条件起作用。我无法弄清楚它为什么不起作用。
它只是打击了我。我正在调试时更改了代码,但它并没有执行我的更改。
我很尴尬。我毕竟是这样做的。我只是......做错了。