使用Oracle 9i
Desc mtitem0(表)
Materailcd Char(10),
Technicalspecs VarChar2(1000)
查询:
Select Materailcd, TechnicalSpecs
From Mtitem0
Where Materailcd = '0100000121'
MATERIALCD TECHNICALSPECS
---------- ---------------------------------------
0100000121 INDUSTRIAL GRADE SALT
SPECIFICATIONS:-
A) MOISTURE MAX: 4.0
PERCENT BY MASS.
B) MATTER INSOLUBLES IN WATER MAX:0.50
我想在一行中检索“TechnicalSpecs”列,如下所示:
MATERIALCD TECHNICALSPECS
-------------------- ---------------------------------------
0100000121 INDUSTRIAL GRADE SALT SPECIFICATIONS:- A) MOISTURE MAX: 4.0 PERCENT BY MASS.
请给我一个想法,并在这方面帮助我.....
商祺 拉赫曼
我没有访问oracle 9i,但我相信下面的代码将工作。你可以试试看,让我知道
select Materailcd , ltrim(sys_connect_by_path(TechnicalSpecs,','),',') as staff
from ( select Materailcd
, TechnicalSpecs
, row_number() over (partition by Materailcd order by TechnicalSpecs) as seq
from Mtitem0 )
where connect_by_isleaf = 1
connect by seq = prior seq +1 and Materailcd = prior Materailcd
start with seq = 1;
我猜你的TECHNICALSPECS专栏中有换行符。只需用一个空格替换它们。
Select Materailcd, replace(TechnicalSpecs, chr(10),' ') TechnicalSpecs
From Mtitem0
Where Materailcd = '0100000121'
如果从Windows客户端输入,您可能还有CR字符,所以为安全起见,也要删除它们:
Select Materailcd, replace(replace(TechnicalSpecs, chr(10),' '),chr(13)) TechnicalSpecs
From Mtitem0
Where Materailcd = '0100000121'