如何在SQL Server表列中替换为String?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (9)
  • 关注 (0)
  • 查看 (133)

我有一个表(SQL Sever),现在它的路径改了变。我需要改变路径的一部分,但不是整个路径。我需要把相同的字符串换成新的,在每个记录中。

怎么方便的做到这一点?

提问于
用户回答回答于

很简单:

update my_table
set path = replace(path, 'oldstring', 'newstring')
用户回答回答于

您还可以在运行时为电子邮件模板替换文本,这里有一个简单的示例。

 DECLARE @xml NVARCHAR(MAX)
 SET @xml = CAST((SELECT [column] AS 'td','',        
        ,[StartDate] AS 'td'
         FROM [table] 
         FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))
select REPLACE((EmailTemplate), '[@xml]', @xml) as Newtemplate 
FROM [dbo].[template] where id = 1
用户回答回答于

下面的例子不错

select replace('this value from table', 'table',  'table but updated')

这个SQL语句将用第三个参数替换给定语句(第一个参数)中“表”(第二个参数)的存在。

初始值为this value from table但是在执行替换函数之后,this value from table but updated

下面是实际例子

UPDATE publication
SET doi = replace(doi, '10.7440/perifrasis', '10.25025/perifrasis')
WHERE doi like '10.7440/perifrasis%'

例如,如果我们有这个值

10.7440/perifrasis.2010.1.issue-1

它会变成

10.25025/perifrasis.2010.1.issue-1
用户回答回答于
select replace(ImagePath, '~/', '../') as NewImagePath from tblMyTable 

其中“ImagePath”是我的列名。 “NewImagePath”是“ImagePath”的临时列名 “~/”是我的当前字符串。(旧字符串) “./”是我指定的字符串。(新字符串) “tblMyTable”是我在数据库中的表。

用户回答回答于

如果目标列类型不是varchar/nvarchar 文本类型,我们需要将列值转换为string,然后将其转换为:

update URL_TABLE
set Parameters = REPLACE ( cast(Parameters as varchar(max)), 'india', 'bharat')
where URL_ID='150721_013359670'
用户回答回答于

您可以使用此查询。

update table_name set column_name = replace (column_name , 'oldstring' ,'newstring') where column_name like 'oldstring%'
用户回答回答于
UPDATE CustomReports_Ta
SET vchFilter = REPLACE(CAST(vchFilter AS nvarchar(max)), '\\Ingl-report\Templates', 'C:\Customer_Templates')
where CAST(vchFilter AS nvarchar(max)) LIKE '%\\Ingl-report\Templates%'

没有CAST函数 会报错

参数数据类型ntext=1对replace函数无效。

用户回答回答于

可以使用下面的代码

update table
set path = replace(path, 'oldstring', 'newstring') where path = 'oldstring'
用户回答回答于
UPDATE [table]
SET [column] = REPLACE([column], '/foo/', '/bar/')

扫码关注云+社区

领取腾讯云代金券