0

SQL で、別の特定の単語の後にテキストを含む列に新しい単語を挿入したいと思います。たとえば、「My car is black」というテキストがあり、新しい単語 My の後に新しい単語を挿入したいと思います。本来の姿:私の新しい車は黒です。

4

2 に答える 2

1

データベースについて言及していないので、SQL Server について回答します。stuff()この場合、本当に役立つ関数が呼び出されます。コードは次のとおりです。

with t as (select 'My car is black' as col)
select STUFF(col, charindex('My', col) + LEN('My') + 1, 0, 'new ')
from t;

文字列の一部を抽出することにより、他のデータベースでも同等のことができます。ただし、文字列関数はデータベースによって異なる傾向があるため、すべての (またはほぼすべての) データベースで機能する形式はありません。

編集:

あなたの説明に基づいて、おそらくあなたが本当に望んでいるものは次のとおりだと思います。

select replace(col, 'sticker', 'sticker SHOCK')
from t;

これは、ほとんどのデータベースで機能します。これを更新として行うこともできます。

update t
    set col = replace(col, 'sticker', 'sticker SHOCK')
    where col like '%sticker%';
于 2013-07-16T13:56:55.133 に答える
0

フレーズの左右の部分を、挿入する新しい単語に連結する必要があります。DBMS に応じて、さまざまな関数を使用して左右の部分を判別します。

SQL Server では、次のことができます。

UPDATE tbl SET phrase = LEFT(phrase, 3) + 'new ' + RIGHT(phrase, 12);

どちらが生成しますか

| | フレーズ |
-----------------------
| | 私の新しい車は黒です |

デモ

于 2013-07-16T13:52:41.197 に答える