से निर्दिष्ट शब्दों को हटाएं मैं तालिका में एक विवरण फ़ील्ड से कुछ तारों को खत्म करने की कोशिश कर रहा हूं। यह अंत करने के मैं इस समारोहटी-एसक्यूएल का प्रयोग स्ट्रिंग
CREATE FUNCTION fnDescriptionClean
(@strDescription varchar(50))
RETURNS varchar(50)
AS
BEGIN
declare @Return varchar(50)
declare @badword varchar(50)
set @badword = 'Front'
set @strDescription = CASE
--Remove from mid string
WHEN @strDescription LIKE '% ' + @Badword +' %' THEN REPLACE(@strDescription,' ' + @Badword + ' ',' ')
--Remove from start of string
WHEN @strDescription LIKE @Badword +' %' THEN RIGHT(@strDescription, (len(@strDescription)-(len(@Badword)+1)))
--Remove from end of string
WHEN @strDescription LIKE '% ' + @Badword THEN LEFT(@strDescription, (len(@strDescription)-(len(@Badword)+1)))
ELSE @strDescription END
set @badword = 'Right'
set @strDescription = CASE
WHEN @strDescription LIKE '% ' + @Badword +' %' THEN REPLACE(@strDescription,' ' + @Badword + ' ',' ')
WHEN @strDescription LIKE @Badword +' %' THEN RIGHT(@strDescription, (len(@strDescription)-(len(@Badword)+1)))
WHEN @strDescription LIKE '% ' + @Badword THEN LEFT(@strDescription, (len(@strDescription)-(len(@Badword)+1)))
ELSE @strDescription END
RETURN @strDescription
end
मैं एसक्यूएल प्रोग्रामिंग करने के लिए नया हूँ और इस पर सुधार करने के लिए चाहते हैं बना दिया है। मान लीजिए कि मैं एक टेबल रखना चाहता था जिसमें 'खराब शब्द' की एक सूची शामिल थी जिसे मैं स्ट्रिंग और लूप से हटा देना चाहता था, विवरण की सफाई करते समय।
मुझे यह इंगित करना चाहिए कि इस प्रक्रिया को जितना संभव हो उतना कुशल होना चाहिए क्योंकि मैं 15 लाख रिकॉर्ड से निपट रहा हूं।
एसक्यूएल सर्वर में 'प्रतिस्थापन' फ़ंक्शन है जिसका मैं इसका उपयोग करने का सुझाव दूंगा और '' के साथ प्रतिस्थापित करूंगा। यहां एक [एमएसएफटी लिंक] है (http://msdn.microsoft.com/en-us/library/ms186862.aspx) यदि आप प्रदर्शन के बारे में चिंतित हैं तो आप नियमित अभिव्यक्तियों को देख सकते हैं जो कि तेज़ी से संचालित होने लगते हैं। – xQbert
मुझे चिंतित है कि वेनिला प्रतिस्थापन समारोह का उपयोग करके मुझे एक शब्द के कुछ हिस्सों को हटा दिया जाएगा जिससे मुझे स्ट्रिंग का एक कष्टप्रद बिट छोड़ दिया जा सके। जैसे कि मैं "रन" को प्रतिस्थापित करता हूं और इसे "रनिंग" मिल जाता है, मुझे "निंग" के साथ छोड़ा जाएगा। मैं नियमित रूप से अभिव्यक्तियों का उपयोग करना शुरू करना चाहता हूं लेकिन मुझे समझ में आता है कि आपको डेटाबेस पर विभिन्न निजीकरण और कंप्यूटर पर अतिरिक्त सॉफ़्टवेयर (विजुअल स्टूडियो?) स्थापित करने की आवश्यकता है - इस समय यह एक विकल्प नहीं है। – user1075081
मैं चिंता को समझता हूं और सराहना करता हूं। हालांकि यह एक समस्या है जिसे आप पूरी तरह से नहीं बचा सकते हैं। इस मुद्दे को कम करने के लिए एकमात्र तरीका हर प्रविष्टि का दृश्य निरीक्षण है; एक अनुमोदन प्रक्रिया के साथ। अपनी तकनीक के साथ भी आप वाक्य के अंत में इसके साथ समस्याओं में भाग लेंगे। बुरा शब्द। – xQbert