SQL Server中的正则表达式使用replace

时间:2017-11-18 10:04:17

标签: sql-server regex

我想改变' @sadim嗨,等等等等。'嗨,等等等等等等等等。'在SQL Server中。

我使用此查询但它不起作用:

update mytable
set ttext = REPLACE(ttext, '@% ' , '');

2 个答案:

答案 0 :(得分:0)

update stack
set name = SUBSTRING(name,CHARINDEX(' ',name),LEN(name));

这将允许您跳过@Username部分。因为字符串以@username开头,所以获取子字符串 这里堆栈是你的表,名称是你的列名

  

来到正则表达式部分请看看这个

https://dba.stackexchange.com/questions/162816/sql-server-replace-with-wildcards

  

如果字符串中间存在@username,请使用:

update stack
set name =
case 
    when name like '@%' then SUBSTRING(name,CHARINDEX(' ',name),LEN(name))
    when name like '%@%' then CONCAT(
        SUBSTRING(name,0,CHARINDEX('@',name)-1),
        SUBSTRING(SUBSTRING(name,CHARINDEX('@',name),LEN(name)),
                  CHARINDEX(' ',
                           SUBSTRING(name,CHARINDEX('@',name),LEN(name))),
                  LEN(
                      SUBSTRING(name,CHARINDEX('@',name),LEN(name))
                      )
                  )

        )

end

答案 1 :(得分:0)

使用以下更新查询

update mytable
set ttext = (select substring(ttext,charindex(' ',ttext)+1,len(ttext) - charindex(' ',ttext)));