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

Hiển thị các giá trị được nối trong Truy vấn SQL

Bạn có thể sử dụng danh sách LISTAGG chức năng với DECODE :

SELECT NAME, NO, 
       LISTAGG(DECODE(RODZ_ST,'JEW',IDENT_ST,NULL), ',') WITHIN GROUP (ORDER BY t.ID DESC, RODZ_ST) AS JEWS,
       LISTAGG(DECODE(RODZ_ST,'DZE',IDENT_ST,NULL), ',') WITHIN GROUP (ORDER BY t.ID , RODZ_ST) AS DZE,
       LISTAGG(DECODE(RODZ_ST,'OBR',IDENT_ST,NULL), ',') WITHIN GROUP (ORDER BY t.ID , RODZ_ST) AS OBR
  FROM ORDERS o
   LEFT JOIN TYPES t ON t.ID_PR = o.ID_ZM
  GROUP BY NAME, NO;

SQL Fiddle Demo




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để chuyển các đối số tới một tập lệnh PL / SQL trên dòng lệnh với SQLPLUS?

  2. Dữ liệu Blob được phân tách trong oracle

  3. Có thể nhận nhiều giá trị từ một truy vấn con không?

  4. Khi nào nên sử dụng các từ đồng nghĩa trong cơ sở dữ liệu?

  5. Làm thế nào để lặp qua các lược đồ khác nhau và thực thi một số sql trên mỗi lược đồ?