我在11g數據庫上使用SQL Developer 3.1.07 當我使用listagg從字段中提取多個值時,我在結果中的每個字符之間得到一個空格listagg列。該查詢返回所有我期望看到的值,這只是多餘的空間讓我瘋狂。有什麼想法嗎?Oracle SQL Developer 3.1.07使用listagg在字符之間增加空格
這裏是我曾經用過一個查詢,但它發生,每次我用LISTAGG在查詢:
select a.personnum Emp_ID
, a.personfullname Name
, a.companyhiredtm Hire_Date
, a.employmentstatus Status
, a.employmentstatusdt Status_Date
, h.Supervisor, h.Agency
from vp_employeev42 a
left outer join (select f.personid
, listagg (g.personcstmdatatxt, ',') within group
(order by g.customdatadefid) Supervisor
from vp_employeev42 f
left outer join personcstmdata g
on f.personid = g.personid
where f.personnum like 'T%'
and f.homelaborlevelnm3 = '1872'
and (g.customdatadefid = '1'
or g.personcstmdatatxt is null)
group by f.personid) h
on a.personid = h.personid
left outer join (select f.personid
, listagg (g.personcstmdatatxt, ',')
within group (order by g.customdatadefid) Agency
from vp_employeev42 f
left outer join personcstmdata g
on f.personid = g.personid
where f.personnum like 'T%'
and homelaborlevelnm3 = '1872'
and (g.customdatadefid = '3'
or g.personcstmdatatxt is null)
group by f.personid) h
on a.personid = h.personid
where personnum like 'T%'
and homelaborlevelnm3 = '1872'
order by personnum;
下面是我得到的結果:
EMP_ID,NAME,HIRE_DATE,STATUS,STATUS_DATE,SUPERVISOR,AGENCY
T98999,Lxxxxm, Lxxxn,20-SEP-12,Active,20-SEP-12,, S t a f f m a r k
T98989,Fxxxxn, Dxxxxa,10-DEC-12,Active,10-DEC-12,, S t a f f m a r k
T99989,Hxxxs, Cxxxxxa,02-OCT-12,Active,02-OCT-12,, S t a f f m a r k
T99999,Hxxxs, Dxxxn,30-JAN-12,Terminated,21-MAY-12, C x x x x x x x x x r T x x x x r, P R O L O G I S T I X
今後請發佈一個*小可重現*測試案例,而不是一大堆難以理解的代碼。除了其他任何事情之外,將問題解決到基本要求的行爲往往提供瞭解決方案,這是最好的學習方式。 – APC 2013-03-09 10:50:09