Sql 带联接的Oracle选择查询
我有下面的Oracle SQL查询,它运行良好Sql 带联接的Oracle选择查询,sql,oracle,Sql,Oracle,我有下面的Oracle SQL查询,它运行良好 Select Cage.BARCODE Cg, CagePen.BARCODE Pen FROM LOCATION_ENTITY CagePen LEFT JOIN LOCATION_ENTITY Cage ON SUBSTR(CagePen.FULL_LOCATION, -6)=Cage.BARCODE WHERE CagePen.FULL_LOCATION = 'Current' 我得到的回复是 CG PEN C
Select Cage.BARCODE Cg, CagePen.BARCODE Pen
FROM LOCATION_ENTITY CagePen
LEFT JOIN LOCATION_ENTITY Cage ON SUBSTR(CagePen.FULL_LOCATION, -6)=Cage.BARCODE
WHERE CagePen.FULL_LOCATION = 'Current'
我得到的回复是
CG PEN
CGE100 CP4265
CGE100 CP4264
CGE101 CP4266
CGE101 CP4267
CGE102 CP4268
CGE102 CP4269
现在我试图巩固CG重复出现的反应
CG PEN
CGE100 CP4265, CP4264
CGE101 CP4266, CP4267
CGE102 CP4268, CP4269
此查询是否应该使用
agg()
您正在查找的listag()
您正在查找
listagg()
可能的重复看起来问题不是关于连接,而是关于将结果聚合为逗号分隔格式。可能的重复看起来问题不是关于连接,而是关于将结果聚合为逗号分隔格式。
SELECT Cage.BARCODE as Cg, LISTAGG(CagePen.BARCODE, ',') WITHIN GROUP (ORDER BY CagePen.BARCODE) as Pens
FROM LOCATION_ENTITY CagePen LEFT JOIN
LOCATION_ENTITY Cage
ON SUBSTR(CagePen.FULL_LOCATION, -6) = Cage.BARCODE
WHERE CagePen.FULL_LOCATION = 'Current'
GROUP BY Cage.BARCODE;