SQL Server - 替换多个字符串模式的最有效方法

时间:2016-01-27 20:33:06

标签: sql sql-server

我需要清理字符串字段并替换十几种不同的模式。我知道你可以使用嵌套的REPLACE函数,但是这样做很多是一个真正的痛苦,键入并使一些非常丑陋的代码。

有更有效的方法吗?

2 个答案:

答案 0 :(得分:3)

您可以执行嵌套替换。 。 。没有嵌套。这是一种方法:

select t.*, t_r12.col_r
from t outer apply
     (select replace(t.col, 'in1', 'out1') as col_r) t_r01 outer apply
     (select replace(t_r01.col_r, 'in2', 'out2') as col_r) t_r02 outer apply
     (select replace(t_r02.col_r, 'in3', 'out3') as col_r) t_r03 outer apply
     . . .;

在这种情况下,我认为outer apply不会增加任何(重大)开销。但是,这确实需要命名所有中间结果。

答案 1 :(得分:1)

您可以编写一个使用REGEX进行替换的CLR过程。