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

Datenbankabfrage zur Suche anhand der Adresse

Das Leben wäre einfacher, wenn alle Ihre Begriffe in aufsteigender Reihenfolge sortiert wären.

Ich gehe davon aus, dass Ihre tatsächliche Anwendung eher eine Variable als eine fest codierte Zeichenfolge verwendet. Die Lösung sollte also etwa so aussehen:

  select city, postcode, name
  from dealers
  where name = p_search_term OR
        postcode = p_search_term OR
        city = p_search_term
  ORDER BY case when postcode = p_search_term then p_search_term else 1 end desc
           , case when name = p_search_term then p_search_term else city end asc