SQL 父子表,显示表中每条记录所在层级

1.sqlserer 中有一张父子关系表,表结构如下:

CREATE TABLE [dbo].[testparent](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [name] [nvarchar](50) NULL,
    [parentID] [int] NULL,
 CONSTRAINT [PK_testparent] PRIMARY KEY CLUSTERED 

2.其中的数据类似:

3.用 CET 递归的方式返回每条记录的层级,其中 lev 为层级, where 后面的条件需要注意

with tree as(
    select id,
    name,
    parentID,
    lev=1
    from testparent
    where name='江苏省'
    UNION ALL
        select 
        b.ID,
        b.name,
        b.parentID,
        lev = tree.lev+1
        from tree
        inner join testparent b on tree.ID=b.parentID
)
select * from tree

4.结果为:

 

转载于:https://www.cnblogs.com/allen-zqw/p/10890446.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值