sql >> Database >  >> RDS >> Oracle

SQL-query om alleen gegevens te retourneren als ALLE noodzakelijke kolommen aanwezig zijn en niet NULL

U kunt exists . gebruiken . Ik denk dat je van plan bent:

select t.*
from t
where exists (select 1
              from t t2
              where t2.id = t.id and t2.type = 'Purchase' and t2.total is not null
             ) and
      exists (select 1
              from t t2
              where t2.id = t.id and t2.type = 'Exchange' and t2.total is not null
             ) and
      exists (select 1
              from t t2
              where t2.id = t.id and t2.type = 'Return' and t2.total is not null
             );

Er zijn manieren om dit te "vereenvoudigen":

select t.*
from t
where 3 = (select count(distinct t2.type)
           from t t2
           where t2.id = t.id and
                 t2.type in ('Purchase', 'Exchange', 'Return') and
                 t2.total is not null
          );


  1. Hoe verschillende sql uit te voeren om gegevens te krijgen volgens de vorige invoergegevens in de pentaho-ketel?

  2. Docker postgres voert geen init-bestand uit in docker-entrypoint-initdb.d

  3. MYSQL:Vraag om vorige en volgende video-ID te krijgen?

  4. Bewaar uitvoer van sql-functie naar csv-bestand (COPY) met dynamische bestandsnaam