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

Klausa 'dalam' di server SQL dengan banyak kolom

Sintaks ini tidak ada di SQL Server. Gunakan kombinasi And dan Or .

SELECT * 
FROM <table_name> 
WHERE 
  (value_type = 1 and CODE1 = 'COMM')
  OR (value_type = 1 and CODE1 = 'CORE') 

(Dalam hal ini, Anda bisa membuatnya lebih pendek, karena value_type dibandingkan dengan nilai yang sama di kedua kombinasi. Saya hanya ingin menunjukkan pola yang bekerja seperti IN di oracle dengan banyak bidang.)

Saat menggunakan IN dengan subquery, Anda perlu mengulanginya seperti ini:

Oracle:

SELECT * 
FROM foo 
WHERE 
  (value_type, CODE1) IN (
    SELECT type, code 
    FROM bar
    WHERE <some conditions>)

SQL Server:

SELECT * 
FROM foo 
WHERE 
  EXISTS (
    SELECT * 
    FROM bar 
    WHERE <some conditions>
      AND foo.type_code = bar.type 
      AND foo.CODE1 = bar.code)

Ada cara lain untuk melakukannya, tergantung pada kasusnya, seperti inner join dan sejenisnya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana menemukan Nama Layanan Oracle

  2. Mengubah kueri ini untuk mengelompokkan baris dan memfilter semua baris selain yang memiliki nilai terkecil

  3. cara yang efisien untuk menguji apakah ada baris tabel

  4. Kunci dan indeks utama dalam bahasa kueri Hive mungkin atau tidak?

  5. Berfungsi untuk mendapatkan jumlah hari kerja antara dua tanggal tidak termasuk hari libur