我正在寻找一种棘手的方法来从以下数据构建分层顺序行:
SET NOCOUNT ON
GO
DECLARE @DataSource TABLE
(
[Col001] CHAR(2)
,[Col002] CHAR(2)
,[Col003] CHAR(2)
,[Col004] CHAR(2)
)
INSERT INTO @DataSource ([Col001], [Col002], [Col003], [Col004])
VALUES ('A1','B1','C1','D1')
,('A1','B1','C1','D2')
,('A1','B1','C2','D3')
,('A1','B1','C2','D4')
,('A1','B2','C1','D5')
,('A1','B2','C1','D6')
,('A1','B2','C1','D7')
SELECT [Col001]
,[Col002]
,[Col003]
,[Col004]
FROM @DataSource
SET NOCOUNT OFF
GO
我正在寻找的结果是这样的:
我知道源数据和结果可能看起来很奇怪,但我是如何得到它们的。在我的真实情况下,我可能会得到多个专栏,但每个建议或想法都会受到赞赏。
注意:[级别]顺序需要与我提供的屏幕截图中的相同。这才是真正的困难。
这个想法是保留连接: