मुझे पता है कि मेरा जवाब थोड़ा देर हो चुकी है, लेकिन इससे दूसरों की मदद मिल सकती है। प्राप्त करने के लिए एसक्यूएल सर्वर में एक सबसे पहले() और अंतिम() एक तरीका होता है, और यहाँ यह है:
Stuff(Min(Convert(Varchar, DATE_FIELD, 126) + Convert(Varchar, DESIRED_FIELD)), 1, 23, '')
उपयोग मिन() पहले() और अंतिम के लिए मैक्स()() के लिए। DATE_FIELD वह तारीख होनी चाहिए जो निर्धारित करती है कि यह पहला या अंतिम रिकॉर्ड है या नहीं। DESIRED_FIELD वह फ़ील्ड है जिसे आप पहले या अंतिम मान चाहते हैं। क्या यह करता है:
- स्ट्रिंग के शुरू में ISO प्रारूप में तारीख जोड़ें (23 वर्ण लंबा)
- कि स्ट्रिंग
- को DESIRED_FIELD संलग्न है कि क्षेत्र के लिए न्यूनतम/अधिकतम मूल्य प्राप्त करें (के बाद से यह तारीख के साथ शुरू करते हैं, आप पहले या अंतिम रिकार्ड)
- सामग्री है कि स्ट्रिंग concatened पहले 23 अक्षर दूर करने के लिए (तारीख हिस्सा)
यहां आपको मिल जाएगा!
संपादित करें: मुझे पहले सूत्र के साथ समस्याएं मिलीं: जब DATE_FIELD में .000 मिलीसेकंड के रूप में है, तो SQL सर्वर किसी भी मिलीसेकंड के साथ स्ट्रिंग के रूप में दिनांक लौटाता है, इस प्रकार DESIRED_FIELD से पहले 4 वर्णों को हटा देता है। मैंने बस प्रारूप को "20" (मिलीसेकंड के बिना) में बदल दिया और यह सब बढ़िया काम करता है। केवल नकारात्मक पक्ष यह है कि यदि आपके पास दो फ़ील्ड हैं जो एक ही सेकंड में बनाए गए थे, तो सॉर्ट संभवतः गन्दा हो सकता है ... जिसमें आप कैसा प्रारूप के लिए "126" पर वापस जा सकते हैं।
Stuff(Max(Convert(Varchar, DATE_FIELD, 20) + Convert(Varchar, DESIRED_FIELD)), 1, 19, '')
संपादित करें 2: मेरा मूल उद्देश्य अंतिम (या पहले) गैर पूर्ण पंक्ति को वापस करना था। मुझे पूछा गया कि आखिरी या पहली पंक्ति कैसे वापस करनी है, गीला होना शून्य है या नहीं। बस एक ISNULL को DESIRED_FIELD में जोड़ें। जब आप एक + ऑपरेटर के साथ दो तारों को जोड़ते हैं, जब उनमें से एक न्यूल होता है, तो परिणाम नल होता है। तो निम्न का उपयोग करें:
Stuff(Max(Convert(Varchar, DATE_FIELD, 20) + IsNull(Convert(Varchar, DESIRED_FIELD), '')), 1, 19, '')
एसक्यूएल सर्वर बदतर है, क्योंकि यह कोई पहला है के लिए पहले उपयोगकर्ता रिटर्न के साथ शामिल हो। मैंने एक ठोस स्पष्टीकरण नहीं सुना है कि यह SQL सर्वर में क्यों मौजूद नहीं है। कभी-कभी इससे कोई फर्क नहीं पड़ता कि वे किस क्रम में हैं (यदि उनके पास किसी विशेष समूह के लिए कॉलम में समान मूल्य है) और कभी-कभी यह करता है (और उन्हें आदेश दिया जाता है)। किसी भी तरह से पहले() का उपयोग होगा। – micahhoover