2010-07-06 15 views
7

वर्चर कॉलम में एक सबस्ट्रिंग के सूचकांक को परिष्कृत करने का सबसे सरल तरीका क्या है? charindex SQLite3 के स्टॉक संस्करण में मौजूद नहीं है - जो अभी भी मेरे लिए थोड़ा आश्चर्यजनक है।SQLite3 में सबस्ट्रिंग का सूचकांक?

विशेष रूप से, मैं, 010000, 011000, 010110 तरह मूल्यों के साथ एक स्तंभ है आदि मैं 11 का पहला मामला के सूचकांक लगाना चाहते हैं। मैंने दिए गए उदाहरणों के लिए, मुझे NULL (या -1), 1, और 3 जैसे कुछ की अपेक्षा होगी।

मेरे पास एक हैक किया गया विचार है जो length और ltrim का उपयोग करता है, लेकिन ऐसा लगता है कि मुझे कई बार ऐसा करने की ज़रूरत है।

उत्तर

2

दुर्भाग्यवश, मुझे लगता है कि आपको एकमात्र उत्तर मिला है जो वर्तमान में काम करता है। SQLite में charindex समकक्ष फ़ंक्शन नहीं है। आप एक लंबाई के साथ अपना खुद का बनाएँ और ट्रिम, लेकिन में :(

+1

ऐसा अजीब बात है ... यहां तक ​​कि कुछ बस वाक्यात्मक चीनी है कि (लेकिन निर्मित) ठीक होगा। मुझे आश्चर्य है कि * char * में कुछ नहीं शामिल है जैसे 'charindex' ... –

+2

^इसे लाइट रखने के लिए;) – straya

5

यह अब builtin instr फ़ंक्शन का उपयोग संभव है कुछ भी नहीं बनाया गया है।

sqlite> select instr(010000,11); 
0 
sqlite> select instr(011000,11); 
1 
sqlite> select instr(010110,11); 
3 
+0

वर्ग 3.7.6 और नीचे इस फ़ंक्शन को शामिल नहीं करता है :( –

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