OBL*_*OBL 3 sql replace wildcard sql-server-2008
我需要使用REPLACE编写一个sql update语句.字符串看起来像'SE*88*000000001'.我需要替换两个星号'*'之间的数字.此处没有任何模式,那么要替换的数字总是在两个星号之间.在这种情况下可以使用外卡吗?
感谢您的帮助.
谢谢!
;
WITH RowSetToUpdate AS (
SELECT
acolumn,
Asterisk1Pos = CHARINDEX('*', acolumn),
Asterisk2Pos = CHARINDEX('*', acolumn, CHARINDEX('*', acolumn) + 1)
FROM atable
WHERE acolumn LIKE '%*%*%'
)
UPDATE RowSetToUpdate
SET acolumn = STUFF(
acolumn,
Asterisk1Pos + 1,
Asterisk2Pos - Asterisk1Pos - 1,
'replacement_string'
)
Run Code Online (Sandbox Code Playgroud)
或者,如果它是要替换的特定数字,那么它会更简单:
UPDATE atable
SET acolumn = REPLACE(acolumn, '*88*', '*replacement_string')
WHERE acolumn LIKE '%*88*%'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19869 次 |
| 最近记录: |