我在 MS-SQL 中有一个包含地址的列,用户在括号中添加了一些与地址有关的附加信息。有时它在地址的末尾有时它在中间。我需要删除该文本有没有办法删除括号内的文本,然后将其插入另一个表格?
例如文本将是
58795 North Test Drive (Main Office)
或者看起来像这样
450 South green Avenue (Green Ave. Office) Suite 200
我在 MS-SQL 中有一个包含地址的列,用户在括号中添加了一些与地址有关的附加信息。有时它在地址的末尾有时它在中间。我需要删除该文本有没有办法删除括号内的文本,然后将其插入另一个表格?
例如文本将是
58795 North Test Drive (Main Office)
或者看起来像这样
450 South green Avenue (Green Ave. Office) Suite 200
假设正好有一个开括号和一个闭括号,那么存在一个简单的解决方案。我使用 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
我想到了。
SELECT Replace(Stuff(CONVERT(VARCHAR (max), metavalue), 1, Charindex('(', CONVERT(VARCHAR (max), metavalue)), ''), ')', '')
FROM metavalues mv
WHERE mv.subfield = 3007