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

SQL untuk memeriksa semua nilai di kolom

Opsi paling sederhana umumnya seperti ini

SQL> ed
Wrote file afiedt.buf

  1  with x as (
  2    select 1 id, 1 val from dual union all
  3    select 1 id, 2 val from dual union all
  4    select 1 id, 3 val from dual union all
  5    select 2 id, 1 val from dual union all
  6    select 2 id, 2 val from dual union all
  7    select 3 id, 1 val from dual union all
  8    select 3 id, 2 val from dual union all
  9    select 3 id, 3 val from dual union all
 10    select 4 id, 1 val from dual
 11  )
 12  select id
 13    from x
 14   where val in (1,2,3)
 15   group by id
 16* having count(distinct val) = 3
SQL> /

        ID
----------
         1
         3

WHERE klausa mengidentifikasi nilai yang Anda minati. HAVING klausa memberi tahu Anda berapa banyak dari nilai-nilai itu yang perlu ada. Jika Anda menginginkan semua baris yang memiliki minimal 2 dari 3 nilai, misalnya, Anda akan mengubah HAVING klausa untuk mencari COUNT dari 2.

Jika val tertentu dijamin muncul paling banyak sekali per id , Anda dapat menghilangkan distinct di HAVING ayat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 Cara Mengembalikan Baris yang Hanya Mengandung Karakter Non-Alfanumerik di Oracle

  2. Cara Mengubah Batasan

  3. Kueri SQL 00904. 00000 - %s:pengenal tidak valid

  4. Mengapa Oracle mengabaikan indeks dengan ORDER BY?

  5. DotConnect dari DevArt untuk Oracle vs penyedia data ADO.NET dari DataDirect