Estoy seleccionar datos de una tabla en una de las 3 columnas coincide con una cadena determinada búsqueda:resultados Ordena por la columna de forma dinámica en función de dónde se encuentra una coincidencia
SELECT *
FROM CARS
WHERE MODEL LIKE searchString
OR MANUFACTURER LIKE searchString
OR DESCRIPTION LIKE searchString
pero tengo que ordenar los resultados en función de donde se encontró el partido, basado en una ponderación de columna. Es decir. si la coincidencia se encontró en la columna MODELO, la fila debería aparecer más arriba en los resultados que si la coincidencia se encontrara en la columna FABRICANTE. Con la ponderación de 1-MODELO 2-FABRICANTE 3-DESCRIPCIÓN.
Toda ayuda muy apreciada, gracias!
la clasificación debe detenerse una vez que se ha encontrado una coincidencia. ¿Es esto tan simple como agregar un 'END' al final de cada declaración 'WHEN'? – essembee
Acabo de darme cuenta de que una vez que se encuentra que una condición es verdadera, la declaración del caso devolverá el resultado y no evaluará más las condiciones. Entonces esto es perfecto, ¡salud! – essembee
buena solución, pero compruebe el rendimiento en tablas grandes ... si devuelve todo, entonces no debería hacer una gran diferencia, solo el costo del tipo. Pero si se devuelve un subconjunto TOP (x), primero se debe ordenar toda la tabla por la coincidencia. Comprueba que el plan de ejecución se ajuste a tus necesidades. –