Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

ORACLE Pilih Distinct mengembalikan banyak kolom dan di mana

Jika memilih 2 kolom saja (nama dan col1) sudah cukup, Anda dapat menggunakan:

select 
    distinct x.name, x.col1
  from table_name x
  where x.col1 = 2;

atau

select 
    x.name, x.col1
  from table_name x
  where x.col1 = 2
  group by (x.name, x.col1);  

Jika Anda membutuhkan semua nilai tetapi Anda tidak keberatan yang mana untuk beberapa catatan yang memenuhi kriteria Anda yang Anda dapatkan (mis. Dan 2 2 1 atau Dan 2 1 3), Anda dapat menggunakan ini (ini akan mencatat catatan pertama berdasarkan pesanan oleh kriteria):

select xx.name, xx.col1, xx.col2, xx.col3
  from (select 
      x.name, x.col1, x.col2, x.col3, dense_rank() over (partition by x.name order by x.name, x.col1, x.col2, x.col3) rnk
    from table_name x
    where x.col1 = 2) xx
  where xx.rnk = 1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL - Penghapusan duplikat lanjutan menggunakan ID NOT IN

  2. Cara mendapatkan objek Koneksi saat ini di Spring JDBC

  3. Menekan kesalahan SQL*PLUS dalam skrip batch

  4. Cara memanggil fungsi tabel Oracle (fungsi pipelined) dari .NET

  5. Kueri Oracle Pivot memberikan kolom dengan tanda kutip di sekitar nama kolom. Apa?