स्ट्रिंग एंडिंग के अनुसार चुनें - एसक्यूएल, ऑरैकल, oracle11g

मेरे डीबी में, मैं विभिन्न संस्करण संख्याओं को स्टोर करता हूं, जैसे निम्न:

OBJNAME
Fix_6.0.0a.1
Fix_6.0.0a.2

मैं उन्हें अंतिम संस्करण तत्व (अंतिम के पीछे की संख्या के अनुसार क्रमबद्ध नहीं करना चाहता हूं . चरित्र। मैं ऐसे SQL कथन कैसे लिखूं?

मुझे लगता है कि यह कुछ ऐसा है:

  SELECT SUBSTR(INSTR(OBJNAME, ".", -1)) as LAST_VERSION, OBJNAME
FROM MY_TABLE
ORDER BY LAST_VERSION

लेकिन सटीक वाक्यविन्यास क्या है?

उत्तर:

उत्तर № 1 के लिए 1

सही संस्करण है

select TO_NUMBER(SUBSTR(OBJNAME,INSTR(OBJNAME,".",-1)+1,LENGTH(OBJNAME))) as LAST_VERSION, OBJNAME from MY_TABLE order by LAST_VERSION

जवाब के लिए 0 № 2

मैं नहीं जानता कि आप किस एसक्यूएल-सॉफ्टवेयर का उपयोग कर रहे हैं, लेकिनआपको substr और instr पैरामीटर पर एक नज़र रखना चाहिए। आप मामले में आप instr के लिए 3 पैरामीटर और substr में 1 पैरामीटर गुजर रहे हैं। लेकिन substr आमतौर पर अधिक की आवश्यकता है। अपने कथन का अवलोकन पाने के लिए कुछ रिक्त स्थान डालें, खासकर सबस्ट्र के लिए .... LAST_VERSION के रूप में। तो आप देखेंगे। गलत परम गिनती।


संबंधित सवाल
सबसे लोकप्रिय