2012-09-13 8 views
6

मैं जैसा कि नीचे दिखाया डेटाबेस (एसक्यूएल सर्वर 2008) मान होने में एक स्तंभ [datatype:varchar(50)] है:क्रमबद्ध बुलेट

1 
2 
1.1.11 
4.1 
5 
2.1 
1.1 
4 
1.2.1 
4.2.2 
4.3 
4.2 
4.3.1 
4.2.1 
11.2 
1.2.4 
4.4 

इन मेरे रिकॉर्ड के लिए गोलियों गिने जा रहे हैं मैं उन्हें सभी रिकॉर्ड समूहन के रूप में सॉर्ट करने के लिए की जरूरत है अनुक्रम में 1,1.1,1.1.1,2,3.1,4,10.1,11.1....

कृपया इस संबंध में मेरी सहायता करें।

+0

'कॉलम_नाम' द्वारा आदेश' के बारे में क्या? – Leri

+2

क्या सीएएसटी द्वारा आदेश दिया गया है ('/' + आपका कॉलम + '/' जैसा कि HIERARCHYID) 'आपको क्या चाहिए? –

+0

AFAIK आपके कॉलम पर 'ऑर्डर बाय' कर रहा है, उन्हें आरोही 'कानूनी' शीर्षक प्रकार ऑर्डर में क्रमबद्ध करेगा। क्या आपको सभी मानों को एक स्ट्रिंग में भी संयोजित करने की आवश्यकता है? – StuartLC

उत्तर

17
WITH T(YourColumn) AS 
(
SELECT '1' UNION ALL 
SELECT '2' UNION ALL 
SELECT '1.1.11' UNION ALL 
SELECT '4.1' UNION ALL 
SELECT '5' UNION ALL 
SELECT '2.1' UNION ALL 
SELECT '1.1' UNION ALL 
SELECT '4' UNION ALL 
SELECT '1.2.1' UNION ALL 
SELECT '4.2.2' UNION ALL 
SELECT '4.3' UNION ALL 
SELECT '4.2' UNION ALL 
SELECT '4.3.1' UNION ALL 
SELECT '4.2.1' UNION ALL 
SELECT '11.2' UNION ALL 
SELECT '1.2.4' UNION ALL 
SELECT '4.4' 
) 
SELECT * 
FROM T 
ORDER BY CAST('/' + YourColumn + '/' AS HIERARCHYID) 

रिटर्न

YourColumn 
---------- 
1 
1.1 
1.1.11 
1.2.1 
1.2.4 
2 
2.1 
4 
4.1 
4.2 
4.2.1 
4.2.2 
4.3 
4.3.1 
4.4 
5 
11.2 

है कि तुम क्या जरूरत है?

+0

हाँ से पहले '11.2' डाल देगा .. बहुत बहुत धन्यवाद .. मुझे यही चाहिए .. बहुत उपयोगी – Nag

संबंधित मुद्दे