Tengo una consulta SQL (utilizando Firebird como RDBMS) en la que necesito ordenar los resultados por un campo, EDICIÓN. Sin embargo, necesito ordenar por el contenido del campo. es decir, "NE" va primero, "OE" va en segundo lugar, "OP" ocupa el tercer lugar, y los espacios en blanco van al último. Lamentablemente, no tengo ni idea de cómo se podría lograr esto. Todo lo que hice fue ORDENAR POR [CAMPO] ASC/DESC y nada más.Solicitud de consulta SQL por valores de campo específicos
¿Alguna sugerencia?
Editar: Realmente debería aclarar: solo esperaba aprender más aquí. Lo tengo ahora que tengo múltiples declaraciones de selección que definen qué mostrar primero. La consulta es bastante grande y yo estaba realmente esperando para aprender, posiblemente, de una manera más eficiente de hacer esto: ejemplo:
SELECT * FROM RETAIL WHERE MTITLE LIKE 'somethi%' AND EDITION='NE'
UNION
SELECT * FROM RETAIL WHERE MTITLE LIKE 'somethi%' AND EDITION='OE'
UNION
SELECT * FROM RETAIL WHERE MTITLE LIKE 'somethi%' AND EDITION='OP'
UNION (etc...)
N una de las soluciones sugeridas requiere los múltiples selects/unions. Todos deberían ser mucho más rápidos y fáciles de mantener, y la consulta será MUCHO más fácil de leer. –
Voy con Peter LaComb en este caso. ¿Por qué estás usando UNIONs? No es necesario Iría con SELECT * DE Venta minorista DONDE MITUTO ME GUSTA 'somethi%' Y EDICIÓN EN ('NE', 'OE', 'OP', '') PEDIDO POR EDICIÓN DE CASO Cuando 'NE' Luego 1 Cuando 'OE' Entonces 2 Cuando 'OP' Luego 3 Else 4 Fin – Pulsehead
@Pulsehead puede encontrar la respuesta a por qué habría utilizado los sindicatos en algún lugar de esta misma pregunta de StackOverflow sobre no saber la mejor manera de ordenar campos. – Cyprus106