SQL Server中的循环行

时间:2009-09-14 06:49:42

标签: sql sql-server

我有一个包含2列的SQL Server表,Code和CodeDesc。我想使用T-SQL循环遍历行并打印CodeDesc的每个字符。怎么做?

4 个答案:

答案 0 :(得分:2)

如果你真的想循环遍历行,你需要光标。

CURSOR

DECLARE   @temp      YOURTYPE 
DECLARE   c          CURSOR
FOR       SELECT     CodeDesc 
          FROM       authors
OPEN      c
FETCH     NEXT FROM c 
INTO      @temp
WHILE     @@FETCH_STATUS = 0
BEGIN
         -do something with temp
         FETCH NEXT INTO @temp
END
CLOSE      c
DEALLOCATE c

答案 1 :(得分:1)

SELECT CodeDesc FROM Table1

然后打印所有返回的数据。

(当然你不使用T-SQL进行打印)

答案 2 :(得分:1)

因为这听起来像家庭作业,我会告诉你如何去做,而不是给你代码:

在WHILE循环中,使用SUBSTRING获取并打印角色。要查找字符串的长度,请使用LEN函数。

答案 3 :(得分:0)

对Svetlozar的答案进行了小幅更新(由于我无法发表评论)。为了使其正常工作,我必须两次都写FETCH NEXT FROM c,否则我将收到一个错误消息,即名为“ NEXT”的游标不存在。因此代码如下所示:

DECLARE   @temp      YOURTYPE 
DECLARE   c          CURSOR
FOR       SELECT     CodeDesc 
          FROM       authors
OPEN      c
FETCH     NEXT FROM c 
INTO      @temp
WHILE     @@FETCH_STATUS = 0
BEGIN
         -do something with temp
         FETCH NEXT FROM c INTO @temp
END
CLOSE      c
DEALLOCATE c