首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

Oracle行转列的特殊有关问题

2012-01-29 
Oracle行转列的特殊问题一个表如下:TB1:姓名用户编号表类型表码张三0001电表100.23张三0001水表56张三0001

Oracle行转列的特殊问题
一个表如下:
TB1:

姓名 用户编号 表类型 表码
张三 0001 电表 100.23
张三 0001 水表 56
张三 0001 水表 45
李四 0002 电表 200.45
李四 0002 水表 23

需转换为:

姓名 用户编号 电表 水表 水表
张三 0001 100.23 56 45
李四 0002 200.45 23 无

注:有的人家里有两块水表,有的人家里只有一块水表,还有重名的,用户编号是不重复的。
如何判断第二块水表呢?

[解决办法]
上面的有问题 

SQL code
select user_name,       user_id,       sum(vla_1),       sum(vla_2),       sum(vla_3) from  M student t WHERE t.stuid IN       (SELECT substr(t1.str,                      instr(t1.str, ',', 1, LEVEL) + 1,                      decode(instr(t1.str, ',', 1, LEVEL + 1),                             0,                             length(str) + 1,                             instr(t1.str, ',', 1, LEVEL + 1)) - instr(t1.str, ',', 1, LEVEL) - 1) s          FROM dual, t1        CONNECT BY LEVE 

热点排行