T-SQL स्ट्रिंग अद्यतन में बदलें


83

मुझे मौजूदा मानों पर किए जा रहे प्रतिस्थापन के साथ एक कॉलम के मूल्यों को अपडेट करने की आवश्यकता है।

उदाहरण:

डेटा में शामिल हैं abc@domain1, pqr@domain2आदि।

मैं मान ऐसी है कि अद्यतन करने की आवश्यकता @domain2साथ बदल दिया है @domain1


प्रत्येक कॉलम में कितने ईमेल पते हैं? क्या abc @ domain1 और pqr @ domain2 एक ही कॉलम में हैं?
दाना

हाँ - वे एक ही स्तंभ में हैं ..
शेखर

जवाबों:


151

वाक्य विन्यास को बदलें :

प्रतिक्रिया (string_expression, string_pattern, string_replacement)

ताकि आपको जो SQL चाहिए वो हो:

UPDATE [DataTable] SET [ColumnValue] = REPLACE([ColumnValue], 'domain2', 'domain1')

1
मेरे मामले में मुझे एक एकल उद्धरण के साथ एक दोहरे उद्धरण को बदलने की आवश्यकता थी। मैंने निम्नलिखित REPLACE ([ColumnValue], '' ',' '' ') का प्रयोग किया। अंत में चार एकल उद्धरण हैं।
Daniel Butler

11

अगर किसी को भी, NTEXTनिम्न प्रारूप का उपयोग करना है:

SELECT CAST(REPLACE(CAST([ColumnValue] AS NVARCHAR(MAX)),'find','replace') AS NTEXT) 
    FROM [DataTable]

4
यह कथन अपने आप में अपडेट को निष्पादित नहीं करता है। अद्यतन [DataTable] सेट सेट [ColumnValue] = कास्ट (REPLACE (कास्ट ([ColumnValue] के रूप में NVARCHAR (मैक्स)), 'डोमेन 2', 'डोमेन 1') के रूप में Ntext) से [DataTable]: आप निम्न कार्य करने होंगे
एडम हे

6
update YourTable
    set YourColumn = replace(YourColumn, '@domain2', '@domain1')
    where charindex('@domain2', YourColumn) <> 0

2
इस जवाब में क्लॉज कहां है, यह स्वीकार किए गए उत्तर पर कोई दक्षता लाभ प्रदान करता है?
जॉन श्नाइडर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.