select id , case when parentID = 0 then typeid else parentID end from tb

解决方案 »

  1.   

    create table tb(ID int,  TypeID  int,  ParentID int)
    insert into tb values(1  ,   3   ,      0)
    insert into tb values(2  ,   3   ,      0)
    insert into tb values(3  ,   3   ,      0)
    insert into tb values(4  ,   3   ,      0)
    insert into tb values(5  ,   3   ,      0)
    insert into tb values(6  ,   3   ,      0)
    insert into tb values(7  ,   10  ,   0)
    insert into tb values(8  ,   11  ,   0)
    insert into tb values(9  ,   11  ,   0)
    insert into tb values(10 ,   13  ,   3)
    insert into tb values(11 ,   14  ,   3)
    insert into tb values(12 ,   15  ,   5)
    insert into tb values(13 ,   16  ,   5)
    insert into tb values(14 ,   4   ,      0)
    insert into tb values(15 ,   18  ,   5)
    insert into tb values(16 ,   19  ,   5)
    insert into tb values(17 ,   20  ,   5)
    insert into tb values(18 ,   21  ,   6)
    insert into tb values(19 ,   22  ,   6)
    insert into tb values(20 ,   23  ,   6)
    insert into tb values(21 ,   23  ,   6)
    insert into tb values(22 ,   32  ,   0)
    insert into tb values(23 ,   28  ,   9)
    insert into tb values(24 ,   30  ,   0)
    insert into tb values(25 ,   3   ,      0)
    insert into tb values(26 ,   4   ,      0)
    insert into tb values(27 ,   3   ,      0)
    insert into tb values(28 ,   3   ,      0)
    insert into tb values(29 ,   3   ,      0)
    insert into tb values(30 ,   4   ,      0)
    insert into tb values(31 ,   10  ,   0)
    insert into tb values(32 ,   30  ,   0)
    goselect id , case when parentID = 0 then typeid else parentID end aid from tbdrop table tb
    /*
    id          aid         
    ----------- ----------- 
    1           3
    2           3
    3           3
    4           3
    5           3
    6           3
    7           10
    8           11
    9           11
    10          3
    11          3
    12          5
    13          5
    14          4
    15          5
    16          5
    17          5
    18          6
    19          6
    20          6
    21          6
    22          32
    23          9
    24          30
    25          3
    26          4
    27          3
    28          3
    29          3
    30          4
    31          10
    32          30(所影响的行数为 32 行)*/
      

  2.   

    declare @t table(ID int,  TypeID int,   ParentID int)
    insert @t select 1,3,0
    insert @t select 2,3,0
    insert @t select 3,3,0
    insert @t select 4,3,0
    insert @t select 5,3,0
    insert @t select 6,3,0
    insert @t select 7,10,0
    insert @t select 8,11,0
    insert @t select 9,11,0
    insert @t select 10,13,3
    insert @t select 11,14,3
    insert @t select 12,15,5
    insert @t select 13,16,5
    insert @t select 14,4,0
    insert @t select 15,18,5
    insert @t select 16,19,5
    insert @t select 17,20,5
    insert @t select 18,21,6
    insert @t select 19,22,6
    insert @t select 20,23,6
    insert @t select 21,23,6
    insert @t select 22,32,0
    insert @t select 23,28,9
    insert @t select 24,30,0
    insert @t select 25,3,0
    insert @t select 26,4,0
    insert @t select 27,3,0
    insert @t select 28,3,0
    insert @t select 29,3,0
    insert @t select 30,4,0
    insert @t select 31,10,0
    insert @t select 32,30,0
    select id,case when parentID<>0 then parentID else TypeID end Aid from @t
    id          Aid
    ----------- -----------
    1           3
    2           3
    3           3
    4           3
    5           3
    6           3
    7           10
    8           11
    9           11
    10          3
    11          3
    12          5
    13          5
    14          4
    15          5
    16          5
    17          5
    18          6
    19          6
    20          6
    21          6
    22          32
    23          9
    24          30
    25          3
    26          4
    27          3
    28          3
    29          3
    30          4
    31          10
    32          30(32 行受影响)
      

  3.   

    select 
      id,
      case arentID then TypeID else ParentID end as aID
    from tb
      

  4.   

    select id, aid=(case when ParentID=0 then TypeID else ParentID end)  from tb