Buenas tardes a tod@s ...
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:
SELECT texto, orden FROM tabla ORDER BY
CASE WHEN bool = true THEN texto
WHEN bool = false THEN texto
ELSE id
END;
El problema es que no consigo enlazar, para el primer CASE WHEN, que se filtre por dos campos diferentes. Por ejemplo:
Código:
SELECT texto, orden FROM tabla ORDER BY
CASE WHEN bool = true THEN texto, orden
WHEN bool = false THEN texto
ELSE id
END;
He probado con 'AND':
Código:
SELECT texto, orden FROM tabla ORDER BY
CASE WHEN bool = true THEN texto AND orden
WHEN bool = false THEN texto
ELSE id
END;
Pero los resultados son horribles ...