SELECT期间是UPDATE表吗?

问题描述

我正在尝试在T-sql中完成所有操作。

表1包含:

somename nvarchar(255);

这是我要执行的一般操作...“ somename”字段包含一个字符串。该字符串是在SOMETIMES后面附加另一个字符串序列,例如“ abc123”。有时候不是。用尽可能少的sql行,我想更新所有在“ abc123”中以END结尾的记录中的somename字段,并且更新后的值将是之前的值,减去“ abc123”部分。

示例排序:

select IP_Address,Caption,LEN(Caption) as xlength from Nodes
where right(Caption,18)='.somedomain.com';
update Nodes SET Caption=LEFT(Caption,(xlength-15));

15当然是字符串“ .somedomain.com”的长度

这当然是行不通的,但是它应该使您了解我要完成的工作。

解决方法

您步入正轨。像下面这样的查询就足够了:

DECLARE @seq Nvarchar(max) ='abc123'

UPDATE yourtable
SET somename = LEFT(somename,LEN(Somename)-LEN(@seq))
WHERE somename like '%' + @seq