【发布时间】:2011-02-25 15:34:46
【问题描述】:
我正在尝试使用游标动态生成结果集。以下是代码
DECLARE @ MilestoneName VARCHAR(100),
@MilestoneSts VARCHAR(100),
@ProjectPre VARCHAR(10),
@ProjectID VARCHAR(10),
@Center VARCHAR(20),
@CenterPre VARCHAR(20),
@Source VARCHAR(20),
@Actual INT;
SET @MilestoneName = null;
SET @MilestoneSts = null;
SET @ProjectPre = null;
SET @CenterPre = null;
DECLARE s_cursor CURSOR FOR
SELECT ProjectID, Center, Source, Actual
FROM #MILESTONE
OPEN s_cursor
FETCH NEXT FROM s_cursor INTO @ProjectID, @Center, @Source, @Actual
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @@FETCH_STATUS sts, @ProjectID PID, @Center Center, @Source Source, @Actual Actual
FETCH NEXT FROM s_cursor INTO @ProjectID, @Center, @Source, @Actual
END
CLOSE s_cursor
DEALLOCATE s_cursor
但是,使用它我可以生成 79 个单行结果,但我想将所有这些行合并为一个结果.. 任何可能的解决方案都将受到高度赞赏..
【问题讨论】:
-
不会
SELECT ProjectID, Center, Source, Actual FROM #MILESTONE做你需要的吗? - 即你为什么要逐行处理然后再次将行重新连接在一起?我认为这可能是您实际需求的简化。如果是这样,你能告诉我们这些是什么,以便我们看看是否可以避免光标。 -
虽然我从
@ProjectPre猜测您正在使用前一行中的值做一些事情。您可以只插入一个 tabgle 变量,然后在最后从中选择。或者您可能想解释一下您在哪些方面做得更好,以便我们提出替代方案。