zdmc zdz
--------------
DW 成都
ND 2008
KTXM 南缘
GQ 华油
XMLX 清华
TKRQ 2008-3-18 0:00:00期望转成:
dw nd ktxm gq xmlx tkrq
----------------------------------
成都 2008 南缘 华油 清华 2008-3-18 0:00:00
--------------
DW 成都
ND 2008
KTXM 南缘
GQ 华油
XMLX 清华
TKRQ 2008-3-18 0:00:00期望转成:
dw nd ktxm gq xmlx tkrq
----------------------------------
成都 2008 南缘 华油 清华 2008-3-18 0:00:00
with t as(
select 'DW' zdmc,'成都' zdz from dual
union all
select 'ND','2008' from dual
union all
select 'KTXM','南缘' from dual
union all
select 'GQ','华油' from dual
union all
select 'XMLX','清华' from dual
union all
select 'TKRQ','2008-3-18 0:00:00' from dual
)
SELECT max(DECODE(zdmc, 'DW', zdz)) DW,
max(DECODE(zdmc, 'ND', zdz)) ND,
max(DECODE(zdmc, 'KTXM', zdz)) KTXM,
max(DECODE(zdmc, 'GQ', zdz)) GQ,
max(DECODE(zdmc, 'XMLX', zdz)) XMLX,
max(DECODE(zdmc, 'TKRQ', zdz)) TKRQ
FROM T
DW ND KTXM GQ XMLX TKRQ
----------------- ----------------- ----------------- ----------------- ----------------- -----------------
成都 2008 南缘 华油 清华 2008-3-18 0:00:00
(
ZDMC VARCHAR2(20),
ZDZ VARCHAR2(20)
);
INSERT INTO T186 VALUES('DW', '成都');
INSERT INTO T186 VALUES('ND', '2008');
INSERT INTO T186 VALUES('KTXM', '南缘');
INSERT INTO T186 VALUES('GQ', '华油');
INSERT INTO T186 VALUES('XMLX', '清华');
INSERT INTO T186 VALUES('TKPQ', '2008-3-18 0:00:00');
测试结果:
这种只适合很少的记录,可用。
如果记录非常之多,就需要写一个函数来完成了。