0

在我的表中,我想从Title列中删除前 7 个字符。

我有一个如下表,我想删除'Copy of'前缀:

Title
---------------------
Copy ofthis is tile1
Copy ofthis is another tile2

我试过这个:

Update MyTable SET Title=(SELECT RIGHT(Title,LEN(Title)- 7) AS Title) 
  WHERE Title LIKE 'Copy of%'

有什么建议么?

4

2 回答 2

0

你不需要子查询,通常你不需要检查长度来确定输出应该有多长。假设这不是varchar(max),你可以这样做:

UPDATE dbo.MyTable
  SET Title = SUBSTRING(Title, 8, 8000)
  WHERE Title LIKE 'Copy of%';

或者你可以这样做:

UPDATE dbo.MyTable
  SET Title = STUFF(Title, 1, 7, '')
  WHERE Title LIKE 'Copy of%';

LTRIM()如果值是'Copy of something'并且您不想要前导空格,您可能还想使用:

UPDATE dbo.MyTable
  SET Title = LTRIM(STUFF(Title, 1, 7, ''))
  WHERE Title LIKE 'Copy of%';
于 2012-07-23T22:51:26.783 回答
0

您需要 SUBSTRING 功能。

update mytable set value = substring  ( value, 8, len (value) )
where value like 'copy of%'
于 2012-07-23T22:51:48.653 回答