我有以下sql查询。我希望结果与,
连接,我需要将其作为单个查询。
Select LOCATION_CODE from LOCATION WHERE ZIPCODE = '555555';
位置表
location_id | location_code | zipcode
--------------------------------------------
1 | ASDFSFD | 555555
2 | OUIXVCX | 555555
3 | 2KLJSDF | 555555
14 | 887CSD | 555555
需要以下结果...... ASDFSFD,OUIXVCX,2KLJSDF,887CSD
答案 0 :(得分:2)
with location_code as (
select 'ASDFSFD' loc_code, 555555 zipcode from dual
union all select 'OUIXVCX', 555555 from dual
union all select '2KLJSDF', 555555 from dual
union all select '887CSD', 555555 from dual
)
select rtrim (xmlagg (xmlelement (e, loc_code || ',')).extract ('//text()'), ',')
from location_code where zipcode = 555555;
答案 1 :(得分:1)
如果您使用的是Oracle 10g,还可以使用未记录的聚合函数WM_CONCAT()
:
SELECT WM_CONCAT(location_code) FROM location WHERE zipcode = 555555;
一个可能的警告是WM_CONCAT()
在某些版本的Oracle 10g中返回CLOB(例如,10.2.0.5),在其他版本中返回VARCHAR2(例如,10.2.0.1)。
您还可以开发自己的字符串连接聚合函数;请参阅以下链接了解具体信息(以及其他如何完成字符串连接的方法):
http://www.oracle-base.com/articles/misc/string-aggregation-techniques.php#wm_concat