这种类型的行到列的转换也只能通过decode来解决了,如果产品不是很多的话是可以的,多的话就比较麻烦了! SQL> select a,sum(decode(b,1,b,0)) 产品1,sum(decode(b,2,b,0)) 产品2,sum(decode(b,3,b,0)) 产品3 from test group by a;A 产品1 产品2 产品3 -------------------- ---------- ---------- ---------- user1 1 2 3 产品必须是数字的才可能!
肯定可以解决的 不过不定的话,显示出来不太好看。 方法一:你可以把每条记录查询出来,显示的时候不需要显示a就可以了。 select t.name t.chanpin from table1 t where t.name='A'显示的时候后面就不要显示A了。 方法二:你可以把产品查出来,前面加上a就可以了。 select t.chanpin from table1 t where t.name='A'
from tab
group by 用户
SQL> select a,sum(decode(b,1,b,0)) 产品1,sum(decode(b,2,b,0)) 产品2,sum(decode(b,3,b,0)) 产品3 from test group by a;A 产品1 产品2 产品3
-------------------- ---------- ---------- ----------
user1 1 2 3
产品必须是数字的才可能!
不过不定的话,显示出来不太好看。
方法一:你可以把每条记录查询出来,显示的时候不需要显示a就可以了。
select t.name t.chanpin from table1 t where t.name='A'显示的时候后面就不要显示A了。
方法二:你可以把产品查出来,前面加上a就可以了。
select t.chanpin from table1 t where t.name='A'