2012-02-21 12 views
7

यहाँ टेबल है, प्रत्येक स्तंभ मान डबल कोट्स (") के साथ लिपटे हैकॉलम के मूल्य से डबल कोट से कैसे छुटकारा पाएं? ।?

Name Number  Address Phone1 Fax Value Status 
"Test" "10000000" "AB" "5555" "555" "555" "Active" 

प्रत्येक कॉलम से दोहरे उद्धरण दूर करने के लिए मैं कैसे प्रत्येक स्तंभ के लिए इस की कोशिश की: -

UPDATE Table 
SET Name = substring(Name,1,len(Name)-1) 
where substring(Name,len(Name),1) = '"' 

लेकिन और अधिक विश्वसनीय समाधान की तलाश में। यह विफल रहता है, किसी भी कॉलम सफेद स्थान

+0

आप TRIM इस्तेमाल कर सकते हैं() सफेद रिक्त स्थान अनुगामी से छुटकारा पाने के - मैं यह कर होगा कि वे उसी तरह – dom

+1

आप वास्तविक डेटा में उद्धरण की उम्मीद है? – gbn

+0

@Aaron जो इसे सही करता है, वह दोहरे उद्धरणों को ट्रिम नहीं करता है, लेकिन अपने प्रश्न में अंतिम वाक्य के अनुसार वह पीछे की सफेद जगहों के बारे में चिंतित है ... – dom

उत्तर

26

बस REPLACE का उपयोग अनुगामी है तो क्या होगा?

... 
SET Name = REPLACE(Name,'"', '') 
... 
10
UPDATE Table 
    SET Name = REPLACE(Name, '"', '') 
    WHERE CHARINDEX('"', Name) <> 0 
+0

आपका उत्तर भी अच्छा है। लेकिन फिर मुझे लिखना है प्रत्येक कॉलम के लिए tabl ..... अपडेट करें ... जबकि जहां क्लॉज मैं एक अपडेट स्टेटमेंट में सभी कॉलम अपडेट कर सकता हूं .. वैसे भी धन्यवाद – User13839404

0
create table #t 
(
    Name varchar(100) 
) 

insert into #t(Name)values('"deded"') 
Select * from #t 

update #t Set Name = Coalesce(REPLACE(Name, '"', ''), '') 
Select * from #t 
drop table #t 
0

त्वरित और गंदा है, लेकिन यह :-) काम आप का विस्तार कर सकते हैं और एक दुकान प्रक्रिया एक तालिका नाम में लेने के रूप में इस लिखेंगे, चरित्र आप बदलना चाहते, साथ बदलने के लिए चरित्र, एक निष्पादित स्ट्रिंग वैरिएबल, आदि ...

DECLARE 
@TABLENAME VARCHAR(50) 

SELECT @TABLENAME = 'Locations' 

SELECT 'Update ' + @TABLENAME + ' set ' + column_Name + ' = REPLACE(' + column_Name + ',''"'','''')' 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = @TABLENAME 
and data_Type in ('varchar') 
संबंधित मुद्दे