我在嘗試將遺留數據轉換爲新的正確結構化的SQL數據庫。爲了簡單起見,可以說一箇舊表包含兩個字段,即Id和Emails。這裏是一些數據。在SQL中處理&符和特殊字符
ID | Emails
0 [email protected], [email protected], [email protected]
1 [email protected]
我想帶他們到新表所示:
INSERT INTO NewTable(Id, [Address])
Select t.Id, split.val
From OldTable t
Cross Apply dbo.Split(t.Emails, ',') split
WHERE t.Emails <> ''
這種運作良好,直到我碰到一個電子郵件:
ID | Emails
0 [email protected]
0 [email protected]
0 [email protected]
1 [email protected]
我可以用這個TSQL做到這一點那裏有一個特殊的字符就像這樣: 電子郵件@湯姆& jerry.com
的符號打破了查詢,並引發以下錯誤:
消息9411,級別16,狀態1,行3
XML分析:行1,字符27,分號預計
什麼是最簡單的方法繞過錯誤並將電子郵件映射到新表中:email @ tom & jerry.com
謝謝。
請用您正在使用的數據庫版本標記您的問題。如果是SQL Server,你使用了什麼'dbo.Split'實現? – HABO 2013-02-28 17:02:28