【发布时间】:2013-11-19 01:09:27
【问题描述】:
我的表中存储了一个方程式。我一次获取一个方程,并想用任何其他字符替换所有运算符。
输入字符串: (N_100-(6858)*(6858)*N_100/0_2)%N_35
运算符或模式: (+, -, *, /, %, (, ))
替换字符: ~
输出字符串: ~N_100~~6858~~~6858~~N_100~0_2~~N_35
我曾尝试使用 嵌套替换 函数进行以下查询,并且得到了所需的输出:
DECLARE @NEWSTRING VARCHAR(100)
SET @NEWSTRING = '(N_100-(6858)*(6858)*N_100/0_2)%N_35' ;
SELECT @NEWSTRING = REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
@NEWSTRING, '+', '~'), '-', '~'), '*', '~'), '/', '~')
, '%', '~'), '(', '~'), ')', '~')
PRINT @NEWSTRING
输出: ~N_100~~6858~~~6858~~N_100~0_2~~N_35
如何在不使用嵌套替换函数的情况下替换所有运算符?
【问题讨论】:
-
为什么多个 Replce 函数有问题?
-
我还有其他一些运算符,我必须多次编写替换函数。所以我正在寻找替代方法来做到这一点。
标签: sql sql-server sql-server-2008 tsql replace