我有以下示例数据:
它基本上显示了以下层次结构:
我应该从中获取所有(S)开始(E)结束对,如下所示(顺序不重要):
我的解决方案是将所有值推入“源”表变量中:
1.选择所有连续的(S)开始(E)结束对 2.将它们插入“目标”表变量中 3.从“源”表变量中删除它们 4.如果“源”表变量不为空,则执行步骤1
我的问题是,有人能想出另一种解决方案吗?在我的实际情况中,我有更多的行,并且我担心在表变量中进行删除和插入。
下面的脚本生成示例数据:
它基本上显示了以下层次结构:
我应该从中获取所有(S)开始(E)结束对,如下所示(顺序不重要):
我的解决方案是将所有值推入“源”表变量中:
1.选择所有连续的(S)开始(E)结束对 2.将它们插入“目标”表变量中 3.从“源”表变量中删除它们 4.如果“源”表变量不为空,则执行步骤1
我的问题是,有人能想出另一种解决方案吗?在我的实际情况中,我有更多的行,并且我担心在表变量中进行删除和插入。
下面的脚本生成示例数据:
DECLARE @DataSource TABLE
(
[ID] TINYINT
,[Type] CHAR(1)
)
INSERT INTO @DataSource ([ID], [Type])
VALUES (3,'S')
,(6,'E')
,(7,'S')
,(10,'S')
,(13,'E')
,(14,'E')
,(15,'S')
,(16,'S')
,(17,'S')
,(19,'S')
,(20,'S')
,(26,'E')
,(27,'E')
,(28,'E')
,(29,'E')
,(30,'E')
,(31,'S')
,(32,'S')
,(35,'E')
,(36,'S')
,(38,'E')
,(39,'S')
,(40,'S')
,(44,'E')
,(45,'E')
,(46,'E')
WINDOW
函数。 - gotqn