表结构如下
id pid name
1   0   a
2   1   b
3   0   c
需要查询的结果,判断改节点是否末节点,是显示1 不是显示0
id pid name isend
1   0   a   0
2   1   b   0
3   2   c   1
4   0   d   1

解决方案 »

  1.   

    create table tb(id int,pid int,name varchar(10))
    insert into tb values(1 , 0 , 'a')
    insert into tb values(2 , 1 , 'b')
    insert into tb values(3 , 2 , 'c')
    insert into tb values(4 , 0 , 'd')
    goselect * , 
           case when not exists (select 1 from tb where pid = t.id) then 1 else 0 end isend 
    from tb tdrop table tb/*
    id          pid         name       isend       
    ----------- ----------- ---------- ----------- 
    1           0           a          0
    2           1           b          0
    3           2           c          1
    4           0           d          1(所影响的行数为 4 行)
    */