Sql 从表中的列中删除字符串的某些部分

Sql 从表中的列中删除字符串的某些部分,sql,sql-server,tsql,sql-server-2012,Sql,Sql Server,Tsql,Sql Server 2012,我有一个表,其中包含一个名为“Note”的文本列 此列包含空值和一些字符串值。下面的更新查询是在不应该在表上运行的情况下在表上运行的 update tblExample set Note = Note + ' USD Temp influx' 因此,其中包含null的行没有更改,但其他行已更改 我想从字段中删除此文本,并保留已存在的任何其他文本。最好的方法是什么 它是否与下面类似,但在更新查询中?不知道该怎么写 select replace(Note, ' USD Temp influx',

我有一个表,其中包含一个名为“Note”的文本列

此列包含空值和一些字符串值。下面的更新查询是在不应该在表上运行的情况下在表上运行的

update tblExample set Note = Note + ' USD Temp influx'
因此,其中包含null的行没有更改,但其他行已更改

我想从字段中删除此文本,并保留已存在的任何其他文本。最好的方法是什么

它是否与下面类似,但在更新查询中?不知道该怎么写

select replace(Note, ' USD Temp influx', '') from tblExample? 
更新

抱歉,应该说该列是nvarchar类型的

您可以使用:

UPDATE tblExample
SET Note = replace(Note, ' USD Temp influx', '')
WHERE Note LIKE '% USD Temp influx'; 
-- it will replace all occurences in string (not only the last one)
或更安全的方式:

UPDATE tblExample
SET Note = LEFT(Note, LEN(Note) - 16)
WHERE Note LIKE '% USD Temp influx';

您真的在使用文本数据类型吗?还是说瓦查尔?我问,因为它们是非常不同的动物。这样做<代码>替换< /代码>也会影响包含中间文本的任何行。如果您确定文本在不需要的更新之前不存在,那么就可以了。@SeanLange抱歉,应该说这是一个错误nvarchar@mHelpMe它是
nvarchar(max)
还是小得多?不知道为什么会被否决。它似乎在做OP要求的事情。@SeanLange如果列中已经包含该文本,它将删除两个可能不好的实例。不过SQL的第二个块还可以。@DavidG我同意第一个块可能有问题。SARG在这里不是问题,可以肯定这是一个一次性的临时修复。不过第一个块仍然是一个潜在的问题。