Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle SQL - IN-Klausel zeigt alle Datensätze an, die in der IN-Bedingung angegeben sind, auch wenn Daten nicht in der Tabelle vorhanden sind

Sie benötigen eine abgeleitete Tabelle, die alle Möglichkeiten enthält. Entweder Sie haben einen, wie einen Stadttisch, und dann können Sie Folgendes tun:

SELECT t.customer_id,s.city
FROM city_table s
LEFT JOIN customer t
 ON(s.id = t.city) 
WHERE s.city IN ('abc', 'def', 'ghi')

Oder generieren Sie die Werte selbst:

SELECT t.customer_id,s.city
FROM (SELECT 'abc' as id FROM DUAL
      UNION ALL 
      SELECT 'def' FROM DUAL
      UNION ALL
      SELECT 'ghi' FROM DUAL) s
LEFT JOIN customer t
 ON(s.id = t.city) 
WHERE s.id IN('abc', 'def', 'ghi')