首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于其他表中行关系的SQL创建表

基于其他表中行关系的SQL创建表
EN

Stack Overflow用户
提问于 2017-12-15 14:15:44
回答 1查看 29关注 0票数 0

需要帮助使用下表中的SQL ( Server)创建谱系表

代码语言:javascript
复制
Path ID  |  Sequence ID 
1            ad-1
1            ad-2
1            ad-3
2            ad-1
2            ad-4
3            ad-5
3            ad-6
3            ad-7
3            ad-8

预期的输出表对于路径中的每一对序列in都有一行,因此,输出如下所示

代码语言:javascript
复制
Path        |     Source Seq ID |     Target Seq ID
1                 ad-1                ad-2
1                 ad-2                ad-3
2                 ad-1                ad-4
3                 ad-5                ad-6
3                 ad-6                ad-7
3                 ad-7                ad-8
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-15 14:24:30

如果您使用的是Server 2012+:

代码语言:javascript
复制
WITH VTE AS (
    SELECT *
    FROM (VALUES (1,'ad-1'),
                 (1,'ad-2'),
                 (1,'ad-3'),
                 (2,'ad-1'),
                 (2,'ad-4'),
                 (3,'ad-5'),
                 (3,'ad-6'),
                 (3,'ad-7'),
                 (3,'ad-8')) V(PathID, SequenceID)),
Targets AS (
    SELECT PathID,
           SequenceID,
           LEAD(SequenceID) OVER (PARTITION BY PathID ORDER BY SequenceID ASC) AS TargetSequenceID
    FROM VTE)
SELECT *
FROM Targets
WHERE TargetSequenceID IS NOT NULL;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47834147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档