T-SQL 用通配符替换多个值
T-SQL Replace Multiple Values with Wildcards
我想替换字符 ,
和 /
。我可以这样做:
DECLARE @OMG VARCHAR(200)
SET @OMG = 'ABC,DE/F'
SELECT REPLACE(REPLACE(@OMG,'/','|') ,',','|')
但是第二个查询不起作用。是否只是错字或无法使用此代码完成任务?我想对应该替换的字符集使用通配符。
SELECT REPLACE(@OMG,[,/],'|')
它returns:
Msg 207, Level 16, State 1, Line 7
Invalid column name ',/'.
你可以定义所有要被替换的变量,一个table里面的替换使用它。
create TABLE #ReplaceStrings (symb VARCHAR(5),replace_char varchar(5))
INSERT INTO #ReplaceStrings
(symb,replace_char)
VALUES ('/','|'),(',','|')
DECLARE @OMG VARCHAR(200)
SET @OMG = 'ABC,DE/F'
SELECT @OMG = Replace(@OMG, symb, replace_char)
FROM #ReplaceStrings
select @OMG
在这里,您可以在单个 replace
中替换所有不需要的字符。
更新: 替换来自 table
的数据
create TABLE ReplaceStrings (symb VARCHAR(5),replace_char varchar(5))
create table #table (String varchar(500))
insert into #table values ('ABC,DE/F'),('AB,C,DE/F/')
INSERT INTO ReplaceStrings VALUES ('/','|'),(',','|')
标量函数
Create function replacechar(@Ip_String varchar(500))
returns varchar(500)
begin
SELECT @Ip_String=Replace(@Ip_String, symb, replace_char)
FROM ReplaceStrings
return @Ip_String
end
执行函数
select String,dbo.replacechar(String) Replaced_String from #table
我想替换字符 ,
和 /
。我可以这样做:
DECLARE @OMG VARCHAR(200)
SET @OMG = 'ABC,DE/F'
SELECT REPLACE(REPLACE(@OMG,'/','|') ,',','|')
但是第二个查询不起作用。是否只是错字或无法使用此代码完成任务?我想对应该替换的字符集使用通配符。
SELECT REPLACE(@OMG,[,/],'|')
它returns:
Msg 207, Level 16, State 1, Line 7
Invalid column name ',/'.
你可以定义所有要被替换的变量,一个table里面的替换使用它。
create TABLE #ReplaceStrings (symb VARCHAR(5),replace_char varchar(5))
INSERT INTO #ReplaceStrings
(symb,replace_char)
VALUES ('/','|'),(',','|')
DECLARE @OMG VARCHAR(200)
SET @OMG = 'ABC,DE/F'
SELECT @OMG = Replace(@OMG, symb, replace_char)
FROM #ReplaceStrings
select @OMG
在这里,您可以在单个 replace
中替换所有不需要的字符。
更新: 替换来自 table
的数据create TABLE ReplaceStrings (symb VARCHAR(5),replace_char varchar(5))
create table #table (String varchar(500))
insert into #table values ('ABC,DE/F'),('AB,C,DE/F/')
INSERT INTO ReplaceStrings VALUES ('/','|'),(',','|')
标量函数
Create function replacechar(@Ip_String varchar(500))
returns varchar(500)
begin
SELECT @Ip_String=Replace(@Ip_String, symb, replace_char)
FROM ReplaceStrings
return @Ip_String
end
执行函数
select String,dbo.replacechar(String) Replaced_String from #table