sql >> Database >  >> RDS >> Oracle

SQL om te controleren op alle waarden in de kolom

De eenvoudigste optie is over het algemeen zoiets als dit

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

De WHERE clausule identificeert de waarden waarin u geïnteresseerd bent. De HAVING clausule vertelt u hoeveel van die waarden moeten bestaan. Als u bijvoorbeeld alle rijen met minimaal 2 van de 3 waarden wilt hebben, wijzigt u de HAVING clausule om te zoeken naar een COUNT van 2.

Als een bepaalde val komt gegarandeerd maximaal één keer per id voor , kunt u de distinct . verwijderen in de HAVING clausule.



  1. JQuery, slepen en neerzetten en opslaan in mysql-database?

  2. Een manier om gegevens uit een DateTime-waarde te extraheren zonder seconden

  3. vergelijking van truncate vs delete in mysql/sqlserver

  4. SQL 2005 - Zoek opgeslagen procedures voor tekst (niet alle tekst wordt doorzocht)