我现有的列包含如下行
`33583164+32702184+45119472+33583164+`33583164+32702184+45119472+33583164+
`6962818+11703027+22894651+34160658+4921875+6302341+47975195+4921875+32702184+21408615+`
我想将这些数字中的每一个递增 1,以便第 1 行变为
44694264+43813295+56230583+44694275+
最佳答案
你可以为此使用 TRANSLATE
SELECT TRANSLATE('33583164+32702184+45119472+33583164+33583164+32702184+45119472+33583164+ 6962818+11703027+22894651+34160658+4921875+6302341+47975195+4921875+32702184+21408615+',
'1234567890',
'2345678901')
在 2017 年之前的版本中,您可以使用嵌套的 REPLACE
。这需要进行排序,以便它不会替换在前面步骤中作为替换字符的字符,因此使用中间字符,例如 ~
以便它可以区分 1
将由初始替换与原始字符串中的 1
创建(当然,请确保您选择一个您满意的中间字符,该字符永远不会出现在原始字符串中)。
SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE('0123456789'
, '0', '~')
, '9', '0')
, '8', '9')
, '7', '8')
, '6', '7')
, '5', '6')
, '4', '5')
, '3', '4')
, '2', '3')
, '1', '2')
, '~', '1')
关于sql-server - SQL Server 将列中的所有数字递增 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61820801/