替换字符串中前两个数字的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()