Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara mendapatkan nilai serupa di Oracle

Berikut adalah solusi yang akan bekerja untuk MySQL. Ia menggunakan subquery yang berkorelasi dalam klausa pilih untuk mengelompokkan gabungan bersama Col2 nilai-nilai. Logikanya adalah bahwa kita hanya menggabungkan nilai yang kurang dari atau sama dengan baris saat ini, untuk grup record tertentu yang berbagi Col1 yang sama nilai.

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;

Demo

Ini adalah kueri yang sama di 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;

Demo

Perhatikan bahwa satu-satunya perubahan nyata adalah mengganti LISTAGG untuk 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. Bagaimana cara mengambil versi saat ini dari sistem manajemen basis data MySQL (DBMS)?

  2. Cara mengatur zona waktu basis data di application.ini

  3. MYSQL Masukkan File SQL Besar Berukuran GB

  4. Bagaimana cara memperbarui database mysql melalui pesan teks SMS?

  5. Mendapatkan kecocokan TEPAT dari pencarian teks lengkap dikembalikan terlebih dahulu?