2016-06-23 8 views
6

ich einige Daten in meinem Tisch haben unterSQL, um durch absolute Werte

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 

Ich möchte ähnliche

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

Ich bin nicht sicher, ob dieses Ergebnis etwas ändern, wenn es einen Weg gibt, um mach das mit Ordnung von? Was ich versuche, ist zu zeigen, dass ich zu zeigen versuchen (10, -10) als Gruppe von Daten

+3

Ist es erforderlich, dass im Fall der Verbindungen des Absolutwertes, positive vor negativen kommt? –

+0

@JeroenMostert, yeah Sie können es auf diese Weise betrachten, ich möchte es als (10, -10) als eine Gruppe von Daten tun – RedRocket

+0

Das Ergebnis ist nur eine Reihe von Zeilen, keine Gruppe von irgendeiner Art. Die Reihenfolge, in der Sie sie zurückgeben, ist keine Gruppierung. Wenn Sie das wollen, können Sie das einfach auf der Client-Seite tun, oder Sie möchten eine kompliziertere Abfrage, die Dinge irgendwie gruppiert ([mit GROUP BY und einer Verkettung]) (http://stackoverflow.com/questions/273238)/how-to-use-Gruppe-von-zu-verketten-strings-in-sql-server)). –

Antwort

7

Sie einfach ABS() Funktion nutzen zu können, die den absoluten Wert einer Zahl zurück:

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

Diese Abfrage wird nach dem absoluten Wert von Column_2

2

sortiert. Sie möchten nach dem absoluten Wert der zweiten Spalte sortieren, dann die erste Spalte.

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 
Verwandte Themen