2016-06-23 6 views
6

मैं नीचेएसक्यूएल आदेश

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, हाँ, आप इसे इस तरह देख सकते हैं, मैं इसे – RedRocket

+0

डेटा के समूह के रूप में (10, -10) के रूप में करना चाहता हूं परिणाम सेट केवल पंक्तियों का एक गुच्छा है, किसी भी प्रकार का समूह नहीं। जिस क्रम में आप उन्हें वापस भेजते हैं वह "समूह" नहीं है। यदि आप इसे चाहते हैं, तो आप इसे क्लाइंट साइड पर कर सकते हैं, या आप एक और जटिल क्वेरी चाहते हैं जो किसी भी तरह से समूह की चीजें करता है ([ग्रुप बाय 'और कुछ कॉन्सटेनेशन के साथ] (http://stackoverflow.com/questions/273238/कैसे के लिए उपयोग-समूह-से-टू-CONCATENATE-तार-इन-एसक्यूएल सर्वर))। –

उत्तर

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 
संबंधित मुद्दे