是否可以使用Update语句更改字符串的前1个或2个字母?

时间:2013-10-17 08:08:54

标签: sql sql-server

我需要一个可以使用update语句更改字符串值的1或2个字母的查询。

它是这样的:

UPDATE  
    tableName  
SET  
    LEFT(Col1, 2)='EX' -- Just a sample, only works for Select statement  
WHERE  
    Col1 like ('%MPLE')  

结果将更改每个字符串值,并且'-MPLE'后缀变为'EXMPLE'。

3 个答案:

答案 0 :(得分:4)

DECLARE @pattern AS VARCHAR(10)--you may need to change the length
DECLARE @changeto AS VARCHAR(2)--you may need to change the length
SET @pattern = '%MPLE'
SET @changeto = 'EX'


UPDATE 
   tableName
SET
   Col1 = CASE 
              WHEN LEN(Col1) > 2                   --If Col1 has more than 2 characters
              THEN @changeto + RIGHT(Col1,LEN(Col1)-2)  --Update the first two characters
              ELSE @changeto                            --Else replace the whole word
          END
WHERE
   Col1 like (@pattern)

答案 1 :(得分:2)

<强>嗨, 以下内容对您有所帮助....

DECLARE @ReplaceString CHAR(2)
SET @ReplaceString = 'RS'

UPDATE TableName SET ColName = REPLACE(ColName, LEFT(ColName, 2),@ReplaceString)
WHERE LEFT(ColName,2) = @Parameter 

=&GT;这里LEFT(ColName,2)返回ColName列值的前两个字符。所以你可以将@Parameter值传递给true。

谢谢, Vishal Patel

答案 2 :(得分:0)

如果您要将%AMPLE后缀的每条记录更新为EXAMPLE,请尝试

UPDATE  tableName  
SET  Col1 = 'EXAMPLE'
WHERE Col1 like ('%MPLE')