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

LISTAGG trong Oracle để trả về các giá trị riêng biệt

19c trở lên:

select listagg(distinct the_column, ',') within group (order by the_column)
from the_table

18c trở về trước:

select listagg(the_column, ',') within group (order by the_column)
from (
   select distinct the_column 
   from the_table
) t

Nếu bạn cần nhiều cột hơn, một cái gì đó như thế này có thể là những gì bạn đang tìm kiếm:

select col1, listagg(col2, ',') within group (order by col2)
from (
  select col1, 
         col2,
         row_number() over (partition by col1, col2 order by col1) as rn
  from foo
  order by col1,col2
)
where rn = 1
group by col1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo phạm vi ngày từ hai cột ngày

  2. Biểu mẫu Oracle trong R12 / R12.2

  3. RMAN Liệt kê các lệnh sao lưu

  4. Thêm tham số ngày vào truy vấn oracle

  5. Tăng tốc to_sql () khi ghi Pandas DataFrame vào cơ sở dữ liệu Oracle bằng SqlAlchemy và cx_Oracle