我需要使用REPLACE编写一条sql更新语句。字符串看起来像’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' )
或者,如果要替换的是一个特定的数字,那么它将更加简单:
UPDATE atable SET acolumn = REPLACE(acolumn, '*88*', '*replacement_string') WHERE acolumn LIKE '%*88*%'