请问如何用一条sql语句将多行记录转为一行记录显示啊?其中日期相同,但每条记录的参数值不同,如下:
table a : riqi paraname para1 para2
2005-10-26 车间1 800.5 900
2005-10-26 车间2 345 678
想把他转成如下显示:
riqi paraname1 p1_para1 p1_para2 paraname2 p2_para1 p2_para2
2005-10-26 车间1 800.5 900 车间2 345 678
table a : riqi paraname para1 para2
2005-10-26 车间1 800.5 900
2005-10-26 车间2 345 678
想把他转成如下显示:
riqi paraname1 p1_para1 p1_para2 paraname2 p2_para1 p2_para2
2005-10-26 车间1 800.5 900 车间2 345 678
select c.riqi,
c.paraname,
c.para1,
c.para2,
isnull(d.paraname,'') paraname2,
isnull(d.para1,'') para12,
isnull(d.para2,'') para22
from a c, a d
where c.rownum=1
and d.paraname =c.paraname
and d.paraname<>c.paraname
and d.rownum=1/select * from v_a
Oracle 已经有年头没有用了,不知道对否?
such as :
SQL> select * from test_tab;ID NAME
-- --------------------
1 A1
2 ABSQL> select id as id1,name as name1,lead(id,1)over(order by id) as id2,lead(name,1)over(order by id) as name2 from test_tab;ID1 NAME1 ID2 NAME2
--- -------------------- ---------- --------------------
1 A1 2 AB
2 AB
riqi paraname1 p1_para1 p1_para2 paraname2 p2_para1 p2_para2 paraname3 p2_para3 p2_para3 。
如果是这样就不好办了