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

Cách nhận giá trị tương tự trong Oracle

Đây là một giải pháp sẽ hoạt động cho MySQL. Nó sử dụng một truy vấn con có tương quan trong mệnh đề select để nhóm nối với nhau Col2 các giá trị. Logic là chúng tôi chỉ tổng hợp các giá trị nhỏ hơn hoặc bằng hàng hiện tại, cho một nhóm bản ghi nhất định chia sẻ cùng một Col1 giá trị.

SELECT
    Col1,
    (SELECT GROUP_CONCAT(t2.Col2 ORDER BY t2.Col2) FROM yourTable t2
     WHERE t2.Col2 <= t1.Col2 AND t1.Col1 = t2.Col1) Col2
FROM yourTable t1
ORDER BY
    t1.Col1,
    t1.Col2;

Bản trình diễn

Đây là cùng một truy vấn trong Oracle:

SELECT
    Col1,
    (SELECT LISTAGG(t2.Col2, ',') WITHIN GROUP (ORDER BY t2.Col2) FROM yourTable t2
     WHERE t2.Col2 <= t1.Col2 AND t1.Col1 = t2.Col1) Col2
FROM yourTable t1
ORDER BY
    t1.Col1,
    t1.Col2;

Bản trình diễn

Lưu ý rằng thay đổi thực sự duy nhất là thay thế LISTAGG cho GROUP_CONCAT .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JDBC Xóa &Chèn bằng cách sử dụng hàng loạt

  2. Truy vấn tham số SQL với LIKE '%? % 'PHP

  3. groupby và count hoạt động như thế nào trong sql

  4. hiển thị các bảng với như sử dụng Java và MySQL?

  5. bảng tạm thời mysql có phải là duy nhất cho mỗi người dùng truy cập tập lệnh tạo ra nó không ...?