tengo esta tabla (simplificado):MySql orden condicionada por
CREATE TABLE `my_table` ( `id` INT NOT NULL AUTO_INCREMENT , `item_name` VARCHAR(45) NULL , `price` DECIMAL(10,0) NULL , PRIMARY KEY (`id`))
tengo que seleccionar todos los elementos de la tabla, ordenó esta manera: 1.
artículos con precio> 0.00 primero, ordenada por precio ASC
2. artículos con precio = 0.00 pasada, ordenados por ID
he intentado esto:
SELECT * FROM my_table WHERE 1 ORDER BY CASE price WHEN !0.00 THEN price ELSE id END ASC
Y i obtener resultados como
item_name | price ----------|------- foo | 150,00 bar | 0,00 baz | 500,00 hum | 0,00
¿Cómo construir la consulta de tener
item_name | price ----------|------- foo | 150,00 baz | 500,00 bar | 0,00 hum | 0,00
?
Gracias por su tiempo
+1 para leer la pregunta. –
¡Maravilloso, muchas gracias! Una pregunta, la 1 y -1 de THEN y ELSE ¿qué significan? – ecstrim
Significa que cuando el precio es 0, asigne 1 para el orden, de lo contrario asigne -1. Cualquiera de los dos valores funcionaría, siempre que el valor THEN sea mayor que el valor ELSE. –