首页 文章

UPDATE和REPLACE字符串的一部分

提问于
浏览
316

我有一个包含两列的表, IDValue . 我想在第二列中更改某些字符串的一部分 .

表格示例:

ID            Value
---------------------------------
1             c:\temp\123\abc\111
2             c:\temp\123\abc\222
3             c:\temp\123\abc\333
4             c:\temp\123\abc\444

现在不需要 Value 字符串中的 123\ . 我试过 UPDATEREPLACE

UPDATE dbo.xxx
SET Value = REPLACE(Value, '%123%', '')
WHERE ID <= 4

当我执行脚本时,SQL Server不会报告错误,但它也不会更新任何内容 . 这是为什么?

8 回答

  • 1

    您不需要 REPLACE 中的通配符 - 它只是找到您为第二个参数输入的字符串,因此以下内容应该有效:

    UPDATE dbo.xxx
    SET Value = REPLACE(Value, '123\', '')
    WHERE ID <=4
    

    (我还在替换中添加了 \ ,因为我认为你也不需要它)

  • 7

    尝试删除 % 字符,如下所示

    UPDATE dbo.xxx
    SET Value = REPLACE(Value, '123', '')
    WHERE ID <=4
    
  • 43

    要使查询在不需要更新每一行的大表中运行 faster ,您还可以选择仅更新将被修改的行:

    UPDATE dbo.xxx
    SET Value = REPLACE(Value, '123', '')
    WHERE ID <= 4
    AND Value LIKE '%123%'
    
  • 29

    查询:

    UPDATE tablename 
    SET field_name = REPLACE(field_name , 'oldstring', 'newstring') 
    WHERE field_name LIKE ('oldstring%');
    
  • 2

    你有一个表,你有日期代码,这是七个字符之类的东西

    "32-1000"
    

    现在你想要全部替换

    "32-"
    

    "14-"
    

    您必须运行的SQL查询是

    Update Products Set Code = replace(Code, '32-', '14-') Where ...(Put your where statement in here)
    
  • 6

    对于任何想要替换你的脚本的人 .

    update dbo.[TABLE_NAME] set COLUMN_NAME= replace(COLUMN_NAME, 'old_value', 'new_value') where COLUMN_NAME like %CONDITION%

  • 0

    您应该使用以下更新查询

    UPDATE dbo.xxx SET Value=REPLACE(Value,'123\','') WHERE Id IN(1, 2, 3, 4)
    
    UPDATE dbo.xxx SET Value=REPLACE(Value,'123\','') WHERE Id <= 4
    

    以上任一查询都应该有效 .

  • 530
    CREATE TABLE tbl_PersonalDetail
    (ID INT IDENTITY ,[Date] nvarchar(20), Name nvarchar(20), GenderID int);
    
    INSERT INTO Tbl_PersonalDetail VALUES(N'18-4-2015', N'Monay', 2),
                                         (N'31-3-2015', N'Monay', 2),
                                         (N'28-12-2015', N'Monay', 2),
                                         (N'19-4-2015', N'Monay', 2)
    
    DECLARE @Date Nvarchar(200)
    
    SET @Date = (SELECT [Date] FROM Tbl_PersonalDetail WHERE ID = 2)
    
    Update Tbl_PersonalDetail SET [Date] = (REPLACE(@Date , '-','/')) WHERE ID = 2
    

相关问题