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

Oracle GROUP_CONCAT () Tương đương

Một số RDBMS có GROUP_CONCAT() cho phép bạn trả về một cột truy vấn dưới dạng danh sách được phân tách (ví dụ:danh sách được phân tách bằng dấu phẩy). MySQL và MariaDB là hai có chức năng như vậy.

PostgreSQL và SQL Server có các chức năng tương tự được gọi là STRING_AGG() .

Mặt khác, Oracle có LISTAGG() chức năng thực hiện khá nhiều điều tương tự (và có lẽ hơn thế nữa).

Vì vậy, bạn có thể nói rằng LISTAGG()GROUP_CONCAT() của Oracle tương đương.

Ví dụ

Dưới đây là một ví dụ cơ bản để chứng minh cách LISTAGG() của Oracle chức năng hoạt động:

SELECT LISTAGG(region_name, ',') 
FROM regions;

Kết quả:

                      LISTAGG(REGION_NAME,',') 
______________________________________________ 
Europe,Americas,Asia,Middle East and Africa   

Trong trường hợp này, tôi đã chỉ định rằng dấu phân tách là dấu phẩy.

Đây là những gì sẽ xảy ra khi chúng tôi chỉ thực hiện truy vấn mà không có LISTAGG() chức năng:

SELECT region_name 
FROM regions;

Kết quả:

              REGION_NAME 
_________________________ 
Europe                    
Americas                  
Asia                      
Middle East and Africa  

Chúng tôi nhận được bốn hàng, mỗi hàng có một giá trị riêng biệt, thay vì một hàng được phân tách bằng dấu phẩy chứa tất cả các giá trị.

LISTAGG() hàm cũng cho phép chúng tôi sắp xếp các kết quả, chỉ trả về các giá trị duy nhất (thông qua DISTINCT mệnh đề), và hơn thế nữa.

Xem LISTAGG() Hàm trong Oracle để có thêm ví dụ.


  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 để bạn chỉ định mệnh đề IN trong một truy vấn động sử dụng một biến?

  2. Cách hiệu quả nhất để kiểm tra xem một bản ghi có tồn tại trong Oracle không?

  3. Trục động trong sql oracle

  4. Tính toán chênh lệch giữa 2 ngày / giờ trong Oracle SQL

  5. 12c Di chuyển tệp dữ liệu trực tuyến