Oracle
 sql >> база данни >  >> RDS >> Oracle

Изберете подзаявка, която връща множество редове като низ (една колона) в таблица (Oracle SQL)

SQL Fiddle

Настройка на схема на Oracle 11g R2 :

СЪЗДАВАНЕ НА ТАБЛИЦА Продукт ( Продукт_№, Колона1, Колона2 ) ASSELECT 1, 'A', 10 ОТ DUAL UNION ALLSELECT 2, 'B', 11 ОТ DUAL UNION ALLSELECT 3, 'C', 12 ОТ DUAL/CREATE ТАБЛИЦА Инвентар (Продукт_No, Инвентар_No, КолонаA, КолонаB, КолонаC) ASSELECT 1, 1, 'ABC', 20, 30 FROM DUAL UNION ALLSELECT 1, 2, 'DDD', 30, 50 FROM DUAL UNION ALLSELECT 2, 1, 'EFG ', 60, 70 ОТ DUAL UNION ALLSELECT 2, 2, 'CDE', 99, 100 ОТ DUAL UNION ALLSELECT 3, 3, 'EFF', 120, 30 ОТ DUAL/ 

Заявка 1 :

SELECT p.*, i.ColumnXFROM 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 ) 

Резултати :

<предварителен код>| ПРОДУКТ_NO | КОЛОНА1 | КОЛОНА2 | КОЛОНА ||------------|---------|---------|-------------- --------|| 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 (.Net Connector)

  2. R12.2 Онлайн цикъл на корекция Резюме

  3. Присъединете се към форума за въпроси и отговори за разработчици

  4. Oracle SQL:Използвайте последователност при вмъкване с Select Statement

  5. Функция STUFF на Oracle, еквивалентна на SQL Server?