我試圖使用遊標來動態生成結果集。以下是代碼在while循環內聯合select語句T-SQL
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個結果單行,但我想聯盟所有的行成一個結果..任何可能的解決方案將高度讚賞..
不會'選擇專案編號,中心,資料來源,實際FROM#MILESTONE'你需要什麼? - 即爲什麼你要逐行處理,然後再將這些行重新連接在一起?我認爲這可能是您實際需求的簡化。如果是這樣,你能告訴我們這些是什麼,所以我們可以看到是否可以避免光標。 – 2011-02-25 15:37:32
雖然我從'@ProjectPre'猜測你正在用前一行的值做一些事情。你可以插入一個tabgle變量,然後從最後選擇。或者你可能想解釋你做得更好,所以我們可以提出替代方案。 – 2011-02-25 15:51:27