SIGN का उपयोग कर सकते हैं सकारात्मक संख्याओं को शीर्ष पर क्रमबद्ध करने के लिए, फिर एबीएस वांछित एएससी/डीईएससी प्राप्त करने के लिए।
SELECT * FROM theTable
ORDER BY SIGN(col) DESC, ABS(col)
संपादित करें
जैसा कि नहुएल ने बताया, उपरोक्त 0 को सकारात्मक और नकारात्मक के बीच में क्रमबद्ध करेगा। इसके बजाय उन्हें सकारात्मक के साथ समूहित करने के लिए, आप CASE
. का उपयोग कर सकते हैं इसके बजाय (या, यदि आपका कॉलम केवल पूर्णांक है, तो थोड़ा जादुई SIGN(col + 1)
)
SELECT * FROM theTable
ORDER BY
CASE WHEN col >= 0 THEN 1 ELSE 2 END,
ABS(col)