2016-06-23 75 views
6

我有以下SQL命令

table_1 
    column_1  column_2 
     1   10 
     1   20 
     1   30 
     1   40 
     1   50 
     2   -10 
     2   -20 
     2   -30 
     2   -40 
     2   -50 

在我的表中的一些数据我想这个结果改变这样的事情

column_1  column_2 
    1   10 
    2   -10 
    1   20 
    2   -20 
    1   30 
    2   -30 
    1   40 
    2   -40 
    1   50 
    2   -50 

我不知道是否有办法按顺序做这个?我试图表明的是我想证明(10,-10)的一组数据

+3

是之前负,在绝对值的关系的情况下,积极自带的要求? –

+0

@JeroenMostert,是的,你可以这样看待它,我想把它作为(10,-10)作为一组数据来使用 – RedRocket

+0

结果集只是一堆行,而不是任何一组。您返回它们的顺序不是“分组”。如果你想这样做,你可以在客户端做,或者你想要一个更复杂的查询,以某种方式进行分组(或者[使用'GROUP BY'和一些串联](http://stackoverflow.com/questions/273238) /如何使用的基团通过对接续模式串式-SQL服务器))。 –

回答

7

您可以简单地使用ABS()函数,该函数返回一个数字的绝对值:

SELECT * FROM YourTable 
ORDER BY ABS(Column_2),column_2 desc 

此查询将按绝对值排序Column_2

2

看起来像要对第二列的绝对值进行排序,然后是第一列。

select column_1, column_2 from table_1 order by abs(column_2),column_1 
10
SELECT * 
FROM <table> 
ORDER BY abs(column_2), column_2 desc