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

Nối và nhóm nhiều hàng trong Oracle

Cân nhắc sử dụng hàm LISTAGG trong trường hợp bạn đang ở 11g:

select grp, listagg(name,',') within group( order by name ) 
  from name_table group by grp

sqlFiddle

cập nhật: Trong trường hợp bạn không, hãy xem xét sử dụng phân tích:

select grp,
    ltrim(max(sys_connect_by_path
       (name, ',' )), ',')
        scbp
  from (select name, grp,
            row_number() over
           (partition by grp
            order by name) rn
         from tab
          )
start with rn = 1
connect by prior rn = rn-1
and prior grp = grp
  group by grp
  order by grp

sqlFiddle




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cảnh báo thời gian chờ đợi dành cho cơ sở dữ liệu EM12c

  2. cột không được phép ở đây lỗi trong câu lệnh INSERT

  3. Làm thế nào để chuyển Danh sách từ java sang Thủ tục Oracle?

  4. 2 cách để kiểm tra mức độ tương thích trong Oracle (SQLcl &SQL * Plus)

  5. Làm cách nào để chỉ trích xuất giá trị ngày tháng từ trường ngày tháng trong Oracle?