Oracle
 sql >> Baza danych >  >> RDS >> Oracle

SQL do sprawdzenia wszystkich wartości w kolumnie

Najprostszą opcją jest zazwyczaj coś takiego

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 Klauzula identyfikuje wartości, którymi jesteś zainteresowany. HAVING klauzula mówi, ile z tych wartości musi istnieć. Jeśli chcesz na przykład wszystkie wiersze, które mają co najmniej 2 z 3 wartości, zmień HAVING klauzula, aby wyszukać COUNT z 2.

Jeśli konkretna val jest gwarantowane, że wystąpi co najwyżej raz na id , możesz wyeliminować distinct w HAVING klauzula.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Python Oracle, wstawianie Brak błędu

  2. Uzyskiwanie śledzenia stosu błędów MySQL w Oracle JDBC Connection

  3. ORACLE Jak używać szpuli z dynamiczną lokalizacją szpuli

  4. wyrażenie regularne dla wszystkich znaków akcentowanych w Oracle

  5. Jak skompresować ten zestaw wyników Oracle do wartości zgodnie z priorytetem wiersza, ignorując wartości null?