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.