我想在返回数据集时创建一个“中断”行。我的Cobol程序要求我使用游标。结果集按CheckNumber、MemberID和ClaimNo排序。每次MemberID发生变化时,我都会返回一些行来表示中断。
例如,
Chk MbrId ClaimNo
100 PAUL 1-1
100 PAUL 2-2
100 XXXX (break row)
100 SALLY 1-1
100 SALLY 2-2
这有可能吗?
发布于 2014-03-17 21:49:03
这里有一个使用派生表的解决方案。我不知道您使用的是什么版本的SQL Server,但它至少应该与SQL Server 2000兼容。
--Test Table
CREATE TABLE #TestData (
Chk INT,
MbrId VARCHAR(16),
ClaimNo VARCHAR(16)
)
--Test data.
INSERT INTO #TestData (Chk, MbrId, ClaimNo)
VALUES
(100, 'PAUL', '1-1'),
(100, 'PAUL', '2-2'),
(100, 'SALLY', '1-1'),
(100, 'SALLY', '2-2'),
(100, 'JOHN', '1-1'),
(100, 'JOHN', '2-2')
--Use this tsql statement for your cursor.
SELECT dt.Chk, dt.MbrTemp AS MbrId, dt.ClaimNo
FROM
(
SELECT Chk, MbrId, MbrId AS MbrTemp, ClaimNo, 1 SortOrder
FROM #TestData
UNION
SELECT Chk, MbrId, 'XXXX' AS MbrTemp, '(break row)' ClaimNo, 2 SortOrder
FROM #TestData
GROUP BY Chk, MbrId
) dt --derived table
ORDER BY Chk, dt.MbrId, SortOrder, ClaimNo
https://stackoverflow.com/questions/22453811
复制相似问题