【问题标题】:Get ID from Row Number SQL从行号 SQL 中获取 ID
【发布时间】:2018-04-03 00:48:55
【问题描述】:

我有下表:

Code     ParentCode     oItem
-----------------------------
A        null           Item 001
B        A              Item 002
C        A              Item 003
D        C              Item 004
E        B              Item 005

现在,我想要行号,那么结果应该是:

Rn        Code     ParentCode     oItem
------------------------------------------
1         A        null           Item 001
2         B        A              Item 002
3         C        A              Item 003
4         D        C              Item 004
5         E        B              Item 005

我的问题是,查询如何获得以下结果:

Rn        Code     RnParent   ParentCode     oItem
--------------------------------------------------------
1         A        null       null           Item 001
2         B        1          A              Item 002
3         C        1          A              Item 003
4         D        3          C              Item 004
5         E        2          B              Item 005

如果您在结果表上看到,parentcode 实际上是 code,我需要根据 Rncode 知道 parentcodeid

请指教。
谢谢。

【问题讨论】:

    标签: sql tsql sql-server-2014


    【解决方案1】:

    如果我理解正确,您只需要rn 来代替parentcode。您可以通过join 获得此信息:

    with t as (
          select row_number() over (order by code) as rn, t.*
          from t
         )
    select t.*, tp.rn as parentrn
    from t left join
         t tp
         on t.parentcode = tp.code
    

    【讨论】:

    • 是的,你是对的。上面的查询是我正在寻找的。干杯,:)
    猜你喜欢
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 2020-09-15
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    相关资源
    最近更新 更多