मुझे डेटाबेस से उच्चतम मूल्य प्राप्त करने की आवश्यकता है जो एक निश्चित स्वरूपण सम्मेलन को पूरा करता है। विशेष रूप से, मैं के लिए उच्चतम मूल्य उस तरहटी-एसक्यूएल IsNumeric() और लिंक-टू-एसक्यूएल
EU999999 ('9' किसी भी अंकों किया जा रहा है)
चयन अधिकतम (col) की तरह कुछ वापस आ जाएगी लग रहा है पता लगाने के लिए चाहते हैं 'EUZ ...' उदाहरण है कि मैं बाहर करना चाहता हूँ। निम्न क्वेरी चाल करता है, लेकिन मैं इसे लिंक-टू-एसक्यूएल के माध्यम से नहीं बना सकता। ऐसा लगता है कि SQL सर्वर में isnumeric() फ़ंक्शन के लिए कोई अनुवाद नहीं है।
select max(col) from table where col like 'EU%'
and 1=isnumeric(replace(col, 'EU', ''))
एक डेटाबेस समारोह, संग्रहीत प्रक्रिया, या कि प्रकृति के कुछ और लेखन, अब तक मेरी पसंदीदा समाधान के इस सूची में नीचे है, क्योंकि इस तालिका मेरे ऐप के लिए महत्वपूर्ण है और मुझे नहीं आसानी से कुछ और के साथ तालिका वस्तु की जगह ले सकता ।
अगला सबसे अच्छा समाधान क्या है?
मुझे आपका सुझाव पसंद है और मैं इसे स्वीकार करूंगा, लेकिन मेरा उपसर्ग (और लंबाई) निरंतर नहीं है, दुर्भाग्यवश, इसलिए मुझे अभिव्यक्ति को गतिशील रूप से उत्पन्न करना होगा। मुझे पसंद नहीं है, और मैं स्कीमा को बदलने के तरीकों के बारे में सोच रहा हूं ताकि मैं इसके आसपास काम कर सकूं। – cdonner
सामने वाले वाइल्डकार्ड के साथ 'LIKE' का उपयोग करने के फायदों में से एक यह है कि यह बहुत ही सूचकांक अनुकूल है (इंडेक्स के खिलाफ एक रेंज चेक किया जा सकता है)। – Ruben
परिवर्तनीय लंबाई के अभिव्यक्तियों पर IsNumeric के लिए एक बहुत चालाक विकल्प। स्ट्रिंग में कहीं भी गैर-संख्यात्मक चरित्र की तलाश करें। पारितोषिक के लिए धन्यवाद! – BlueMonkMN