sql >> Database teknologi >  >> RDS >> Oracle

Oracle SQL - IN-klausul viser alle poster givet i IN-tilstand, selv når data ikke er til stede i tabellen

Du skal bruge en afledt tabel, der indeholder alle muligheder. Enten har du et, som et bybord, og så kan du gøre:

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

Eller generer værdierne selv:

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



  1. PostgreSQL:Drop Database, men DB er der stadig

  2. LINQ-til-XYZ polymorfi?

  3. beregne alder i år måneder og dage

  4. SOUNDEX() Funktion i Oracle