2012-06-28 18 views
8

मैं SQL का उपयोग कर रहा हूं।फ़ाइल नाम से एक्सटेंशन हटाएं

एक तालिका में tblDemo, कॉलम में से एक 'फ़ाइल नाम' है। इस कॉलम की प्रत्येक पंक्ति में किसी भी एक्सटेंशन के साथ एक अलग फ़ाइल नाम होता है। पूर्व के लिए । 'flower.jpeg', 'batman.mov', study.pdf आदि

कृपया मुझे एक प्रश्न पर सुझाव दें जो मुझे 'फ़ाइल नाम' कॉलम की प्रत्येक पंक्ति से एक्सटेंशन (और डॉट भी) को हटाने में मदद कर सकता है । ताकि मैं केवल पूर्व नाम प्राप्त कर सकूं। 'फूल', 'बैटमैन', 'अध्ययन' आदि

धन्यवाद

+2

इस में मदद मिलेगी - http://stackoverflow.com/questions/1024 9 78/खोज-सूचकांक-के-उप-स्ट्रिंग-का-सब-स्ट्रिंग-उपयोग-टी-एसक्यूएल – Kshitij

उत्तर

26

इस एक बाहर का प्रयास करें:

UPDATE TableName 
SET FileName = REVERSE(SUBSTRING(REVERSE(FileName), 
         CHARINDEX('.', REVERSE(FileName)) + 1, 999)) 

View For a DEMO @ SQLFiddle.com

+0

यू आर चैंप। इसने काम कर दिया। यह वास्तव में फ़ाइल नाम से एक्सटेंशन को हटा देता है, भले ही फ़ाइल नाम में एकाधिक 'डॉट' हो। मैं आपकी पोस्ट को थोड़ा सा संपादित करूंगा, ताकि भविष्य में यह किसी अन्य की मदद करे। – Kings

+3

MySQL उपयोगकर्ताओं के लिए CHARINDEX –

+0

लिंक के बजाय LOCATE का उपयोग सही ढंग से काम नहीं कर रहा है। – thecoolmacdude

6

Sql सर्वर पर परीक्षण किया गया। यह एक्सटेंशन के बिना फ़ाइल नाम दिखाता है, डेटा को संशोधित करने के लिए अद्यतन/सेट में बदलें।

SELECT left([FileName], len([FileName]) - charindex('.', reverse([FileName]))) 
    FROM tblDemo 

संपादित: रिवर्स का उपयोग कर संशोधित, तो यह भी काम करता है जब क्षेत्र कई डॉट्स में शामिल है।

यहाँ अद्यतन तालिका संस्करण:

UPDATE Testing 
    Set [FileName] = left([FileName], 
         len([FileName]) - charindex('.', Reverse([FileName]))) 
+0

सी में काम नहीं करेगा ase "यह। Is.My.Filename.Txt"। – Ben

+0

बेन/जेसीआईएस - इस तरह के मामले का विवरण लेने के लिए उल्लिखित प्रश्न में क्या संशोधित करना है: - 'यह। आई। माई। फिलेनाम.एक्सटी' – Kings

+0

फ़ाइल नाम – Jcis

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