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

Kueri SQL untuk mengembalikan data hanya jika SEMUA kolom yang diperlukan ada dan bukan NULL

Anda dapat menggunakan exists . Saya pikir Anda berniat:

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
             );

Ada beberapa cara untuk "menyederhanakan" ini:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pivoting data menggunakan dua kolom

  2. Oracle Sql Developer string literal kesalahan terlalu panjang

  3. Pertanyaan Teratas tentang JAVA/JRE di Oracle Apps

  4. Kesalahan (ORA-00923:FROM kata kunci tidak ditemukan di tempat yang diharapkan)

  5. Parameter batas waktu koneksi untuk Oracle DB dari python