SQL順

2016-06-23 5 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)。/how-to-use-group-to-concatenate-strings-in-sql-server))。 –

答えて

7

のグループとして、あなたは、単に数の絶対値を返しますABS()機能、使用することができます。

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

をこのクエリは、絶対値がColumn_2の順に並べられます。

2

2番目の列の絶対値、次に1番目の列の値を並べ替えるように見えます。それは、絶対値の絆の場合には、正、負の前に来て、要件

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