2016-08-30 17 views
9

Tôi cần phải thay thế nhiều ký tự trong một chuỗi. Kết quả không được chứa bất kỳ '&' hoặc bất kỳ dấu phẩy nào.SQL Thay thế nhiều ký tự khác nhau trong chuỗi

Tôi hiện có:

REPLACE(T2.[ShipToCode],'&','and') 

Nhưng làm thế nào để bạn đặt nhiều giá trị trong?

Rất cám ơn!

+2

sử dụng khác 'REPLACE': 'REPLACE (REPLACE (T2 [ShipToCode], '&', 'và'), '', ''.)' – Lamak

Trả lời

13

Bạn chỉ cần vòng hoa cúc họ:

REPLACE(REPLACE(T2.[ShipToCode], '&', 'and'), ',', '') 
+0

Làm cho rất nhiều ý nghĩa. Cảm ơn. – coblenski

3

Chúng tôi sử dụng một chức năng để làm điều gì đó tương tự mà looped qua chuỗi, mặc dù điều này là chủ yếu để loại bỏ nhân vật mà không được trong "@ValidCharacters" chuỗi. Điều đó rất hữu ích khi xóa bất kỳ thứ gì mà chúng tôi không muốn - thường là các ký tự không phải chữ và số, mặc dù tôi nghĩ chúng tôi cũng có không gian, trích dẫn, trích dẫn một lần và một số người khác trong chuỗi đó. Nó đã thực sự được sử dụng để loại bỏ các nhân vật không in ấn mà có xu hướng lẻn vào những lúc như vậy có thể không hoàn hảo cho trường hợp của bạn, nhưng có thể cung cấp cho bạn một số ý tưởng.

CREATE FUNCTION [dbo].[ufn_RemoveInvalidCharacters] 
(@str VARCHAR(8000), @ValidCharacters VARCHAR(8000)) 
RETURNS VARCHAR(8000) 
BEGIN 
    WHILE PATINDEX('%[^' + @ValidCharacters + ']%',@str) > 0 
    SET @str=REPLACE(@str, SUBSTRING(@str ,PATINDEX('%[^' + @ValidCharacters + 
']%',@str), 1) ,'') 
    RETURN @str 
END 
Các vấn đề liên quan