sql - ORDER BY separately positive & negative numbers in MySQL statement -


i have mysql table , return rows based on column value in order:

  • first ascending order if column >=0
  • then descending order if column <0

e.g. 0,2,4,7,-2,-3,-5

can use sign sort positive numbers top, take absolute value abs desired asc/desc.

select * thetable order sign(col) desc, abs(col) 

edit

as nahuel pointed out, above sort 0's middle between positive , negative. instead group them positives, can use case instead (or, if column integers, magical sign(col + 1))

select * thetable order      case when col >= 0 1 else 2 end,     abs(col) 

Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c++ - Using OpenSSL in a multi-threaded application -

All overlapping substrings matching a java regex -