sql >> Database teknologi >  >> RDS >> Oracle

SQL for at kontrollere for alle værdier i kolonnen

Den enkleste mulighed er generelt noget som dette

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 klausul identificerer de værdier, du er interesseret i. HAVING klausul fortæller dig, hvor mange af disse værdier skal eksistere. Hvis du f.eks. ville have alle de rækker, der havde mindst 2 af de 3 værdier, ville du ændre HAVING klausul for at lede efter en COUNT af 2.

Hvis en bestemt val er garanteret højst én gang pr. id , kan du fjerne den distinct i HAVING klausul.



  1. Java:resultatsættet er tomt, mens lagret procedure kaldes med ref markøren som OUT

  2. PHP Multiple Dropdown Box Form Send til MySQL

  3. Optimering af JDBC-hentningsstørrelse ved brug af Spring Boots application.properties

  4. Ikke i stand til at oprette flere brugerdefinerede db-tabeller ved aktivering af wp-plugin