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 に答える