在 SELECT 期间更新 table?
UPDATE table during SELECT?
我正在尝试在 T-SQL.
中完成这一切
表 1 包含:
somename nvarchar(255);
这是我想做的事情的大致思路...“somename”字段包含一串字符。该字符串有时会附加另一个字符串序列,如“abc123”。有时不是。使用尽可能少的 SQL 行,我想更新所有以“abc123”结尾的记录中的 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
我正在尝试在 T-SQL.
中完成这一切表 1 包含:
somename nvarchar(255);
这是我想做的事情的大致思路...“somename”字段包含一串字符。该字符串有时会附加另一个字符串序列,如“abc123”。有时不是。使用尽可能少的 SQL 行,我想更新所有以“abc123”结尾的记录中的 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