如果您有足夠數量的數據,這將需要很長時間,但我懷疑有很多更好的選擇使用SQL。
DECLARE @Table TABLE (TableID INT PRIMARY KEY, ColumnX VARCHAR(32))
INSERT INTO @Table VALUES (1, '(Info 1) (Info 2)');
INSERT INTO @Table VALUES (2, '(Info 1)');
INSERT INTO @Table VALUES (3, '(Info 10) (Info 20)');
INSERT INTO @Table VALUES (4, '(Info1')
INSERT INTO @Table VALUES (5, '(Info1) (Info2')
INSERT INTO @Table VALUES (6, '(Info1) Info2)')
INSERT INTO @Table VALUES (7, 'Info1')
INSERT INTO @Table VALUES (8, 'Info1)')
INSERT INTO @Table VALUES (9, NULL);
SELECT
TableID
, [Column1] = CASE WHEN PATINDEX('%(%)%', ColumnX) = 1
THEN SUBSTRING(ColumnX
, CHARINDEX('(', ColumnX) + 1
, CHARINDEX(')', ColumnX)
- CHARINDEX('(', ColumnX) - 1
)
ELSE NULL END
, [Column2] = CASE WHEN PATINDEX('%(%)%(%)%', ColumnX) = 1
THEN SUBSTRING(ColumnX
, CHARINDEX('(', ColumnX, CHARINDEX('(', ColumnX) + 1) + 1
, CHARINDEX(')', ColumnX, CHARINDEX(')', ColumnX) + 1)
- CHARINDEX('(', ColumnX, CHARINDEX('(', ColumnX) + 1) - 1
)
ELSE NULL END
FROM @Table
對此,我們不能表示感謝。我真的不得不把自己的頭撞到牆上,試圖自己做這件事,但那一天即將結束,我無法及時切斷它。你的解決方案就像一個魅力!再次感謝。 :) – Zan 2009-04-24 14:10:47