例如   字段名:  ID      NAME  
                  1      张
                  1      王
                   2      赵
我想实现的结果是:   ID    NAME
                      1    张
                           王
                       2   赵
用SQL语句怎么实现  谢谢了

解决方案 »

  1.   

    with tt as(
      select 1 id, '张' name from dual union all
      select 1 id, '王' name from dual union all
      select 1 id, '李' name from dual union all
      select 2 id, '赵' name from dual)
      
    SELECT nullif(id, pid) id, NAME
      FROM (SELECT id, NAME, lag(id) over(PARTITION BY id ORDER BY id) pid
              FROM tt)
      

  2.   


    with tt as(
      select 1 id, '张' name from dual union all
      select 1 id, '王' name from dual union all
      select 1 id, '李' name from dual union all
      select 2 id, '赵' name from dual)
       select decode(row_number() over(partition by id order by id), 1, id),
              name
         from ttDECODE(ROW_NUMBER()OVER(PARTIT NAME
    ------------------------------ ----
                                 1 张
                                   王
                                   李
                                 2 赵
      

  3.   

    上面给出的是SQL逻辑你不是照抄到你那里,而是根据实际情况去写你的SQL啊