मेरी समस्या बहुत सरल है: मेरे पास स्ट्रिंग की एक सरणी है। जावा में इसे सॉर्ट करने से एक ऑर्डर मिलता है, और एसक्यूएल सर्वर 2005 में थोड़ा अलग ऑर्डर देता है। मैंने देखा अंतर का एक उदाहरण दो तारों के मामले में था: "जील; पेजप्रो", "जील", जो जावा इस क्रम में टाइप करता है, और एसक्यूएल विपरीत क्रम में। मैंने एससीएल सर्वर ऑर्डर को एसीआईआई (myColumn) द्वारा बनाने की कोशिश की लेकिन अभी भी कोई प्रभाव नहीं है। मैं इसे कैसे हल कर सकता हूं ?? .....SQL सर्वर 2005 सॉर्ट वर्कर कॉलम प्राप्त करें जैसे कि जावा
उत्तर
डेव के उत्तर पर विस्तार करने के लिए, यदि आपने उस संयोजन को निर्धारित किया है जिसे आप सॉर्ट करने के लिए उपयोग करना चाहते हैं, तो आप इस नाम को ORDER BY खंड में इस तरह का उपयोग कर सकते हैं: ORDER BY colA COLLATE SQL_Latin1_General_Cp437_CS_AS_KI_WI
।
कृपया ध्यान रखें कि यह सॉर्टिंग के लिए एक इंडेक्स का उपयोग नहीं करेगा जिसे colA
पर परिभाषित किया जा सकता है। आप गणना कॉलम का उपयोग कर इसके आसपास हो सकते हैं।
सामान्यतः, मैं एक ही स्थान पर सभी सॉर्टिंग करने का सुझाव दूंगा: या तो जावा में, या डेटाबेस में, लेकिन कभी-कभी यहां और कभी-कभी नहीं। यह सिर्फ भ्रम और जटिलता की ओर जाता है।
मुझे संदेह है कि इसे SQL सर्वर collation के साथ प्रभावी रूप से करना है। यह न केवल उपलब्ध चरित्र सेट को प्रभावित करता है बल्कि यह भी कि चरित्र एक-दूसरे के खिलाफ कैसे व्यवहार करते हैं। यहां तक कि काफी सामान्य SQL_Latin1_General परिवार में भी, दर्जनों विशिष्ट कॉलेशन उपलब्ध हैं।
क्या आपने एएससी या डीईएससी के साथ आरोही या अवरोही के लिए सॉर्ट ऑर्डर निर्दिष्ट करने का प्रयास किया है? – jpw
हां, निश्चित रूप से एएससी हैं। और मुझे – Madrugada
की आवश्यकता है क्या आप यह कहने के लिए अपना प्रश्न संपादित कर सकते हैं कि एसक्यूएल आपके डेटा को किस प्रकार सॉर्ट करेगा? जावा जिस तरह से करता है वह आपके प्रश्न के लिए अप्रासंगिक है। – JohnFx