表一
 
 ID    NAME  VALUE   FLAG
 001    A     200     0
 001    A    300     1
 002    B     400     1
 002    B     200     0
 003    C    300     0
得到表2
 ID    NAME   0      1
 001    A     200    300
 002    B     200    400
 003    C    300     0
查询语句怎么写啊

解决方案 »

  1.   


    select ID,NAME,sum(decode(FLAG,0,VALUE)) as 0,sum(decode(FLAG,1,VALUE)) as 1
    from table
    group by ID,NAME
      

  2.   


    --加个空的判断
    select id,name,
           nvl(sum(decode(flag,0,value)),0) as "0",
           nvl(sum(decode(flag,1,value)),0) as "1"
    from table
    group by id,name
      

  3.   

    select ID,NAME,(decode(FLAG,0,VALUE)) as 0,(decode(FLAG,1,VALUE)) as 1
    from table
    group by ID,NAME