oracle 查询 列 变成行 并 显示 对应数量

时间:2022-10-27 10:31:21
oracle 中: 如 查询结果为: name    
                                             你好      
                                             你好  
                                             你好  
                                             我们  
                                             我们     
                                             呵呵 

需求:name 那一列的 数据 转换成一行(并显示 相同数据的  数量 ),(如:上面的转换为:) 
你好  我们   呵呵 
3       2         1

5 个解决方案

#1


select count(decode(name,'你好',0)) as 你好,count(decode(name,'我们',0)) as 我们,count(decode(name,'呵呵',0)) as 呵呵
from table


试试这样行不行

#2


可以在CSDN上面搜索行列置换,很多的

#3


上面的那一列  列 数据 ,只是 举个列子。数据是从数据库查出来的,查出来之前  是不知道 什么内容的。

#4


写多个子查询,用查询结果作为select后面的值

#5



select * from t pivot (count(name) for name in('你好','我们','呵呵'));

#1


select count(decode(name,'你好',0)) as 你好,count(decode(name,'我们',0)) as 我们,count(decode(name,'呵呵',0)) as 呵呵
from table


试试这样行不行

#2


可以在CSDN上面搜索行列置换,很多的

#3


上面的那一列  列 数据 ,只是 举个列子。数据是从数据库查出来的,查出来之前  是不知道 什么内容的。

#4


写多个子查询,用查询结果作为select后面的值

#5



select * from t pivot (count(name) for name in('你好','我们','呵呵'));