替换字符串中前两个数字的T-sql脚本
表替换字符串中前两个数字的T-sql脚本,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,表参数包含列序列号。值SerialNumber的前缀是数字99。示例:99064960 Table.Parameter ------------- [ParameterID] [int] IDENTITY(1,1) NOT NULL, [SerialNumber] [varchar](10) NULL, 我想编写一个脚本,将所有行上的99替换为88 预期结果:88064960 Table.Parameter ------------- [ParameterID] [int] IDENTITY(
参数
包含列序列号
。值SerialNumber
的前缀是数字99。示例:99064960
Table.Parameter
-------------
[ParameterID] [int] IDENTITY(1,1) NOT NULL,
[SerialNumber] [varchar](10) NULL,
我想编写一个脚本,将所有行上的99替换为88
预期结果:88064960
Table.Parameter
-------------
[ParameterID] [int] IDENTITY(1,1) NOT NULL,
[SerialNumber] [varchar](10) NULL,
使用以下声明解决了问题,但发布了问题,以将这些功能合并为一个声明
UPDATE table
SET SerialNumber = SUBSTRING(SerialNumber, 3, LEN(SerialNumber)-2)
WHERE ID IN ( )
然后,此字符串添加了前缀:
update table
set SerialNumber = '88' + SerialNumber
where ID in ( )
谢谢。您可以这样做:
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语句中:
UPDATE Table1
SET theString='88'+SUBSTRING(@str,3,LEN(@str))
WHERE LEFT(Table1.theString,2)='99'
参考:
- 这个怎么样:
UPDATE mytable
SET field = '88' + SUBSTRING(field, 3)
WHERE SUBSTRING(field, 1, 2) = '99'
问题太多不相关的文本会被否决。没有太多的细节。谢谢,帮助,成功执行以下操作。更新表集SerialNumber=SUBSTRING(SerialNumber,3,LEN(SerialNumber)-2),其中ID IN()更新表集SerialNumber='FA'+SerialNumber,其中ID IN()