使用Oracle 9i
描述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.请给我一个想法,并在这方面帮助我.
问候
康复者
发布于 2019-03-05 21:57:56
我不能访问oracle9i,但我相信下面的代码可以工作。你能试一下让我知道吗?
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; 发布于 2019-03-07 00:22:53
我猜您的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' https://stackoverflow.com/questions/55003854
复制相似问题