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

Klauzula „In” w serwerze SQL z wieloma kolumnami

Ta składnia nie istnieje w SQL Server. Użyj kombinacji And i Or .

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

(W tym przypadku możesz go skrócić, ponieważ value_type jest porównywany z tą samą wartością w obu kombinacjach. Chciałem tylko pokazać wzorzec, który działa jak IN w Oracle z wieloma polami.)

Używając IN z podzapytaniem, należy je przeformułować w następujący sposób:

Wyrocznia:

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

Serwer SQL:

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

W zależności od przypadku można to zrobić na inne sposoby, takie jak sprzężenia wewnętrzne i tym podobne.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ROWDEPENDENCIES Narzut w Oracle

  2. Oracle — importować dane do tabeli o innej nazwie?

  3. ORACLE i TRIGGERS (wstawione, zaktualizowane, usunięte)

  4. Jak usunąć kilka wartości w SQL?

  5. Wstaw datę UTC/GMT do bazy danych Oracle za pomocą Java i Spring