1

MS-SQL にアドレスを含む列があり、ユーザーは括弧内のアドレスに関する追加情報を追加しました。アドレスの最後にある場合もあれば、真ん中にある場合もあります。そのテキストを削除する必要があります。括弧内のテキストを削除して別のテーブルに挿入する方法はありますか?

たとえば、テキストは次のようになります

58795 North Test Drive (Main Office)

または、このように見える可能性があります

450 South green Avenue (Green Ave. Office)  Suite 200
4

2 に答える 2

5

開き括弧が 1 つ、閉じ括弧が 1 つだけであると仮定すると、簡単な解決策が存在します。元のテーブル名に T1 を使用し、新しいテーブルには T2 を使用します。

BEGIN TRANSACTION

INSERT INTO T2
SELECT ID, SUBSTRING([Address], CHARINDEX('(', [Address]) + 1, CHARINDEX(')', [Address]) - CHARINDEX('(', [Address]) - 1)
FROM T1
WHERE CHARINDEX('(', [Address]) > 0
AND CHARINDEX(')', [Address]) > 0

UPDATE T1
SET [Address] = SUBSTRING([Address], 0, CHARINDEX('(', [Address]))
              + SUBSTRING([Address], CHARINDEX(')', [Address]) + 1, LEN([Address]))

--結果を確認する

COMMIT TRANSACTION
于 2013-10-16T23:29:15.203 に答える
0

私はそれを考え出した。

SELECT Replace(Stuff(CONVERT(VARCHAR (max), metavalue), 1, Charindex('(',    CONVERT(VARCHAR     (max), metavalue)), ''), ')', '')
FROM   metavalues mv
WHERE  mv.subfield = 3007 
于 2013-10-16T23:50:37.500 に答える