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
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