sto selezionando i dati da una tabella in cui una delle 3 colonne corrisponde una determinata stringa di ricerca partner:Ordina i risultati per colonna dinamicamente a seconda di dove è stato trovato
SELECT *
FROM CARS
WHERE MODEL LIKE searchString
OR MANUFACTURER LIKE searchString
OR DESCRIPTION LIKE searchString
Ma ho bisogno di ordinare i risultati a seconda dove è stata trovata la partita, in base alla ponderazione di una colonna. Cioè se la corrispondenza è stata trovata nella colonna MODELLO, la riga dovrebbe apparire più in alto nei risultati rispetto a quando la corrispondenza è stata trovata nella colonna COSTRUTTORE. Con la ponderazione in 1-MODELLO 2-PRODUTTORE 3-DESCRIZIONE.
Tutti gli aiuti sono stati molto apprezzati, grazie!
la classifica dovrebbe fermarsi una volta trovata una corrispondenza. È così semplice come aggiungere una "FINE" alla fine di ogni istruzione "WHEN"? – essembee
Appena realizzato che una volta che una condizione è risultata essere vera, la dichiarazione del caso restituirà il risultato e non valuterà ulteriormente le condizioni. Quindi è perfetto, evviva! – essembee
buona soluzione, ma verifica le prestazioni su tabelle di grandi dimensioni .. se restituire tutto allora non dovrebbe fare molta differenza, solo il costo dell'ordinamento. Ma se si restituisce un sottoinsieme TOP (x), allora l'intera tabella deve essere prima ordinata per corrispondenza. Controlla il piano di esecuzione adatto alle tue esigenze .. –