Haciendo un UNION con las condiciones del WHERE adecuadas. Es decir, el primer SELECT lso valores de 1 a 9, y el segundo SELECT después del UNION ALL, buscando sólo los que tengan 0.
Es lo más sencillo que se puede plantear.
Código SQL:
Ver originalSELECT * FROM
(SELECT ...
FROM tabla
WHERE columna >0
ORDER BY ....) T1
UNION ALL
SELECT * FROM
(SELECT ...
FROM tabla
WHERE columna =0
ORDER BY ....) T2