Creo que esto se puede hacer, pero no estoy seguro.
Quiero intentar sacar los registros de una tabla ordenados por una serie de columnas según el caso.
La tabla contiene una relación de datos, entre ellas un campo texto, un booleano y un indice (no el indice del registro).
Quiero intentar ordenar los resultados de la QUERY en función del campo booleano de la siguiente forma:
- Si el booleano = TRUE -> ORDER BY indice, texto
- Si el booleano = FALSE -> ORDER BY texto
He probado con SELECT .. FROM .. ORDER BY CASE WHEN .. THEN ..;
Pero no funciona ...
¿Alguna sugerencia?
Muchas gracias.
Edit.1
He conseguido ordenar según casos con el siguiente código:
Código:
El problema es que no consigo enlazar, para el primer CASE WHEN, que se filtre por dos campos diferentes. Por ejemplo:SELECT texto, orden FROM tabla ORDER BY CASE WHEN bool = true THEN texto WHEN bool = false THEN texto ELSE id END;
Código:
He probado con 'AND':SELECT texto, orden FROM tabla ORDER BY CASE WHEN bool = true THEN texto, orden WHEN bool = false THEN texto ELSE id END;
Código:
Pero los resultados son horribles ... SELECT texto, orden FROM tabla ORDER BY CASE WHEN bool = true THEN texto AND orden WHEN bool = false THEN texto ELSE id END;