表Parameter
包含列SerialNumber
。值SerialNumber
的前缀为数字99.示例:99064960
。
Table.Parameter
-------------
[ParameterID] [int] IDENTITY(1,1) NOT NULL,
[SerialNumber] [varchar](10) NULL,
我想编写一个更改脚本,在所有行上用88替换99。
预期结果:88064960
。
使用以下声明解决了问题但发布了问题以将这些功能合并为一个声明。
UPDATE table
SET SerialNumber = SUBSTRING(SerialNumber, 3, LEN(SerialNumber)-2)
WHERE ID IN ( )
此字符串随后添加了前缀:
update table
set SerialNumber = '88' + SerialNumber
where ID in ( )
谢谢。
答案 0 :(得分:4)
这个怎么样:
UPDATE mytable
SET field = '88' + SUBSTRING(field, 3)
WHERE SUBSTRING(field, 1, 2) = '99'
答案 1 :(得分:0)
你可以这样做:
DECLARE @str VARCHAR(100)
SET @str='99064960'
SELECT
CASE
WHEN LEFT(@str,2)='99'
THEN '88'+SUBSTRING(@str,3,LEN(@str))
ELSE @str
END
在这样的更新声明中:
UPDATE Table1
SET theString='88'+SUBSTRING(@str,3,LEN(@str))
WHERE LEFT(Table1.theString,2)='99'
参考: