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

Query del database per la ricerca tramite indirizzo

La vita sarebbe più facile se tutti i tuoi termini fossero ordinati in ordine crescente.

Presumo che la tua applicazione effettiva stia utilizzando una variabile anziché una stringa codificata. Quindi la soluzione dovrebbe assomigliare a questa:

  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