Kann SIGN verwenden Um die positiven Zahlen nach oben zu sortieren, nehmen Sie den absoluten Wert mit ABS um das gewünschte ASC/DESC zu erhalten.
SELECT * FROM theTable
ORDER BY SIGN(col) DESC, ABS(col)
BEARBEITEN
Wie Nahuel betonte, sortiert das obige 0 in die Mitte zwischen positiv und negativ. Um sie stattdessen mit den Positiven zu gruppieren, können Sie einen CASE
verwenden stattdessen (oder, wenn Ihre Spalte nur Ganzzahlen enthält, das leicht magische SIGN(col + 1)
)
SELECT * FROM theTable
ORDER BY
CASE WHEN col >= 0 THEN 1 ELSE 2 END,
ABS(col)