REPLACEを使用してSQLの更新文を書く必要があります。文字列は 'SE * 88 * 000000001'のようになります。私は2つのアスタリスク '*'の間の数字を置き換える必要があります。ここに他のパターンはありません。その場合、置き換えられる数字は常に2つのアスタリスクの間です。このような状況でワイルドカードを使用することは可能ですか?SQL Update Replace文
あなたのお手伝いをお待ちしております。
ありがとうございます!
REPLACEを使用してSQLの更新文を書く必要があります。文字列は 'SE * 88 * 000000001'のようになります。私は2つのアスタリスク '*'の間の数字を置き換える必要があります。ここに他のパターンはありません。その場合、置き換えられる数字は常に2つのアスタリスクの間です。このような状況でワイルドカードを使用することは可能ですか?SQL Update Replace文
あなたのお手伝いをお待ちしております。
ありがとうございます!
;
WITH RowSetToUpdate AS (
SELECT
acolumn,
Asterisk1Pos = CHARINDEX('*', acolumn),
Asterisk2Pos = CHARINDEX('*', acolumn, CHARINDEX('*', acolumn) + 1)
FROM atable
WHERE acolumn LIKE '%*%*%'
)
UPDATE RowSetToUpdate
SET acolumn = STUFF(
acolumn,
Asterisk1Pos + 1,
Asterisk2Pos - Asterisk1Pos - 1,
'replacement_string'
)
それともを交換する特定の数だ場合、それがさらに簡単になります:
SQLの風味UPDATE atable
SET acolumn = REPLACE(acolumn, '*88*', '*replacement_string')
WHERE acolumn LIKE '%*88*%'
? –
使用しているデータベースシステムによって異なる場合があります。 –
SQL Server 2008 R2 – OBL