Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Chọn truy vấn con trả về nhiều hàng dưới dạng chuỗi (một cột) trong bảng (Oracle SQL)

SQL Fiddle

Thiết lập lược đồ Oracle 11g R2 :

CREATE TABLE Product ( Product_No, Column1, Column2 ) AS
SELECT 1, 'A', 10 FROM DUAL UNION ALL
SELECT 2, 'B', 11 FROM DUAL UNION ALL
SELECT 3, 'C', 12 FROM DUAL
/
CREATE TABLE Inventory ( Product_No, Inventory_No, ColumnA, ColumnB, ColumnC ) AS
SELECT 1, 1, 'ABC',  20,  30 FROM DUAL UNION ALL
SELECT 1, 2, 'DDD',  30,  50 FROM DUAL UNION ALL
SELECT 2, 1, 'EFG',  60,  70 FROM DUAL UNION ALL
SELECT 2, 2, 'CDE',  99, 100 FROM DUAL UNION ALL
SELECT 3, 3, 'EFF', 120,  30 FROM DUAL
/

Truy vấn 1 :

SELECT p.*, i.ColumnX
FROM   Product p
       LEFT OUTER JOIN
       ( SELECT Product_no,
                LISTAGG(
                  ColumnA || '-' || ColumnB || '-' || ColumnC,
                  ','
                ) WITHIN GROUP ( ORDER BY Inventory_no )
                AS ColumnX
         FROM   Inventory
         GROUP BY Product_No
       ) i
       ON ( p.product_no = i.product_no )

Kết quả :

| PRODUCT_NO | COLUMN1 | COLUMN2 |              COLUMNX |
|------------|---------|---------|----------------------|
|          1 |       A |      10 |  ABC-20-30,DDD-30-50 |
|          2 |       B |      11 | EFG-60-70,CDE-99-100 |
|          3 |       C |      12 |           EFF-120-30 |


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle - Với mối quan hệ một đến nhiều, hãy chọn các hàng riêng biệt dựa trên giá trị tối thiểu

  2. Bạn có thể sử dụng Microsoft Entity Framework với Oracle không?

  3. Không thể thấy Nhà cung cấp dữ liệu Oracle cho .NET trong Visual Studio 2012 RC

  4. Bảng bên ngoài Oracle

  5. Sử dụng con trỏ tham chiếu Oracle trong Java mà không phụ thuộc Oracle