当前位置: 首页 > 面试题库 >

用cte创建while循环

从劲
2023-03-14
问题内容

如何从while循环中创建sql server cte
这样的循环

  declare @ind as int
  declare @code as nvarchar
  set @ind  = 0
   while @ind < 884
  begin
    select @ind  = @ind  + 1
    --here execute Procedure 
        --and set return value to variable 
    set @code = cast (@ind   as nvarchar)
  end

问题答案:

如果需要表:

;WITH Sec(Number) AS 
(
    SELECT 0 AS Number
    UNION ALL
    SELECT Number + 1
    FROM Sec
    WHERE Number < 884
)

SELECT * FROM Sec
OPTION(MAXRECURSION 0)

如果您需要一个字符串:

;WITH Sec(Number) AS 
(
    SELECT 0 AS Number
    UNION ALL
    SELECT Number + 1
    FROM Sec
    WHERE Number < 884
)

SELECT STUFF(a.[Str], 1, 1, '')
FROM
(
    SELECT (SELECT ',' + CAST(Number AS NVARCHAR(3)) 
    FROM Sec
    FOR XML PATH(''), TYPE
    ).value('.','varchar(max)') AS [Str] 
) AS a
OPTION(MAXRECURSION 0)


 类似资料:
  • 问题内容: 我想创建一个在不从现有的表中选择,而是具有插入到它的数据。当前,我正在创建一个表,然后在完成后将其删除。有没有一种方法可以有效地创建相同的对象?这是我当前的代码: 问题答案: 您可以通过从对偶中选择日期值并将它们结合在一起来创建公用表表达式(CTE,子查询分解等)。 与CTE无关,但是您可以通过使用日期文字来减少输入:

  • while,翻译成中文是“当...的时候”,这个单词在英语中,常常用来做为时间状语,while ... someone do somthing,这种类型的说法是有的。在python中,它也有这个含义,不过有点区别的是,“当...时候”这个条件成立在一段范围或者时间间隔内,从而在这段时间间隔内让python做好多事情。就好比这样一段情景: while 年龄大于60岁:-------->当年龄大于60

  • 只要给定条件为真,Perl编程语言中的while循环语句就会重复执行目标语句。 语法 (Syntax) Perl编程语言中while循环的语法是 - while(condition) { statement(s); } 这里的statement(s)可以是单个陈述或一个陈述块。 condition可以是任何表达。 当条件为真时,循环迭代。 当条件变为假时,程序控制将立即传递到循环之后的行。

  • 编写程序时,您可能会遇到需要反复执行操作的情况。 在这种情况下,您需要编写循环语句以减少行数。 JavaScript支持所有必要的循环,以减轻编程压力。 while循环 JavaScript中最基本的循环是while循环,将在本章中讨论。 while循环的目的是只要expression为真,就重复执行语句或代码块。 表达式变为false,循环终止。 流程图 while loop流程图如下 - 语法

  • 只要给定条件为真,Objective-C编程语言中的while循环语句就会重复执行目标语句。 语法 (Syntax) Objective-C编程语言中while循环的语法是 - while(condition) { statement(s); } 这里, statement(s)可以是单个语句或语句块。 condition可以是任何表达式,true是任何非零值。 当条件为真时,循环迭代。

  • While循环一次又一次地执行相同的代码,直到满足停止条件。 语法 (Syntax) 在R中创建while循环的基本语法是 - while (test_expression) { statement } 流程图 (Flow Diagram) 这里while循环的关键点是循环可能永远不会运行。 当测试条件并且结果为假时,将跳过循环体并且将执行while循环之后的第一个语句。 例子 (Exam