而在T-SQL中循环具有多个条件

时间:2014-12-11 02:53:16

标签: sql sql-server tsql

让我先说我知道我知道这些循环很糟糕,你不应该在Transact SQL中使用它们。但是,出于某些目的(这些目的无关紧要,所以不要问我“你想做什么!?”)你只需要。我不想,但我得。

反正。有没有办法在T-SQL中使用while循环终止复杂的条件语句?比如,在C#中我只是说(i> -10&& i< 10),因为我希望循环在Sentinel值介于-10和10之间时终止,但我只是......无法弄清楚该怎么做。

这可能非常简单......或者......不可能。请指教。

现在,我刚刚

WHILE @N <> 0
BEGIN
   --code and such here
END

2 个答案:

答案 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)

我觉得自己像一个完全白痴。而且我确定我看起来也像。

我尝试了所有这些东西,试图让条件起作用。我无法弄清楚它为什么不起作用。

它只是打击了我。我正在调试时更改了代码,但它并没有执行我的更改。

我很尴尬。我毕竟是这样做的。我只是......做错了。