SQL語法遞迴

SQL語法遞迴

 

CREATE  TABLE  #ResutTbl (SerialNo int,Pages varchar(8000))

DECLARE @SerialNo int, @Page varchar(20)

SET @SerialNo = 0

DECLARE append_page CURSOR FOR
SELECT SerialNo,Page
FROM SampleTbl
ORDER BY SerialNo

OPEN append_page

FETCH NEXT FROM append_page  
INTO @SerialNo,@Page

WHILE @@FETCH_STATUS = 0
BEGIN

    IF (SELECT COUNT(*) FROM #ResutTbl WHERE SerialNo=@SerialNo) = 0
    BEGIN
    INSERT INTO #ResutTbl (SerialNo, Pages) VALUES (@SerialNo, @Page)
    END
    ELSE
    BEGIN
    UPDATE #ResutTbl SET Pages = LTRIM(Pages + ',' + @Page) WHERE SerialNo=@SerialNo
    END

    FETCH NEXT FROM append_page  
    INTO @SerialNo, @Page

END

CLOSE append_page
DEALLOCATE append_page

SELECT * FROM #ResutTbl
DROP  TABLE  #ResutTbl