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

Oracle LISTAGG () cho nhiều thuộc tính?

select K, listagg(case when chgv1 = 1 then v1 else null end,',') within group (order by v1) as v1lst, --Only consider cases in listagg when rows have changed
          listagg(case when chgv2 = 1 then v2 else null end,',') within group (order by v2) as v2lst  --Only consider cases in listagg when rows have changed
from (
 select k, v1, v2,
        row_number() over (partition by k,v1 order by v1 ) as chgv1, --Detect changes in v1. In this case it's 1.
        row_number() over (partition by k,v2 order by v1 ) as chgv2  --Detect changes in v1. In this case it's 1.
 from t)
group by k;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn SQL để trả về dữ liệu chỉ khi TẤT CẢ các cột cần thiết đều có mặt và không phải là NULL

  2. cách chèn ngày hiện tại vào trường DATE ở định dạng dd / mm / yyyy trong oracle

  3. Biểu thức bảng Oracle về bộ sưu tập và thứ tự

  4. Làm thế nào để chuyển danh sách đối tượng Java sang thủ tục lưu trữ của Oracle bằng MyBatis?

  5. Lỗi kết nối ODBC Oracle (sử dụng trình điều khiển ODBC có sẵn của oracle)