sql - How can I run a query to sort by a column and asc/desc using parameters? -
मैं इस उदाहरण से काम कर रहा हूं।
सृजित प्रक्रिया प्राप्त कर्मचारी (@ कॉलमनाम varchar (100)) के रूप में कर्मचारी का नाम, प्रथम नाम, अंतिम नाम, एसएसएन, कर्मचारी द्वारा आदेश से वेतन, जब कॉलमनाम = 'अंतिम नाम' अंतिम नाम तब होता है जब @ कॉलमनाम = 'वेतन' तब कनवर्ट (varchar (50), वेतन ) जब @ कॉलमनाम = 'एसएसएन' तब एसएसएन अंत मामला कथन काम करता है, लेकिन क्या होगा अगर मेरे पास निम्न पैरामीटर हैं: @SortColumn, @SortDirection।
@SortColumn किसी भी प्रकार का कोई भी स्तंभ हो सकता है और ऐसा लगता है कि मामले का बयान आपको उसी प्रकार के रूप में परिवर्तित करना होगा। मुझे लगता है कि मैं उन्हें सभी VARCHAR बना सकता हूं और बस सुनिश्चित कर लें कि डेटटाइम जैसे मूल्यों को क्रमबद्ध करने के लिए सही क्रम में रखा गया है।
लेकिन अगर मेरे पास @SortDirection पैरामीटर एएससी या डीईएससी के रूप में सेट है VARCHAR मान? सॉर्ट दिशा बदलने के लिए मैं क्वेरी को कैसे समायोजित कर सकता हूं?
यदि आप उपयोग नहीं करना चाहते हैं डायनेमिक एसक्यूएल तो आप इसे ऐसे केस स्टेटमेंट के द्वारा कर सकते हैं, जहां से क्लॉज के गैर फ़िल्टर किए गए हिस्सों को जन्म दिया जा सकता है; यह हालांकि जल्दी नहीं होगा अभ्यस्त आपको यह भी सावधान रहने की आवश्यकता है कि आपके केस खंडों के प्रकार मिलान करते हैं।
SELECT * FROM dbo.Contacts ORDER BY CASE @Sort WHEN 1 फिर उपनाम कब 2 अगला नाम जब 3 टेलीफोन नंबर संख्या ELSE '' अंत एएससी, मामला @ सोर्ट 4 थे जब कार्मिक_रेफ जब 5 गुना टाइम्ससैट_नम्बर 6 थे, तब टेलिफोन_संख्या ELSE '' डीईएससी
Comments
Post a Comment