2011-03-10 68 views
0

我有一個表T1,它有一列A1。該塔具有值等James Patterson%Michael Ledwidge將列的值拆分爲2個不同的列

我需要在這些列中的值被劃分成其他2列

A1 =詹姆斯帕特森
A2 =邁克爾·萊德奇

同樣,有20個記錄在表T1

這怎麼辦?

+0

你想要做這種分裂用於顯示目的,或者是你在尋找使存儲在數據庫中的數據永久的改變? – 2011-03-10 10:14:53

+0

永久變更 – Liberalpearl 2011-03-10 14:37:43

+0

如果兩列要存儲相同類型的數據(例如,兩者都是標識作者),則應將它們移出到單獨的表中,每個值一行,並將外鍵返回到單個在你現有的表格中排。這避免了複雜的搜索(在您的設計中,您現在必須搜索A1和A2),並且允許將來添加無限數量的「An」值,而不僅僅是兩個。 – 2011-03-10 15:10:51

回答

3

你說,兩個其他列,但其中一個似乎是相同的,A1

總之:

UPDATE T1 
SET 
    A1 = SUBSTRING(A1, 1, CHARINDEX('%', A1) - 1), 
    A2 = STUFF(A1, 1, CHARINDEX('%', A1), '') 
WHERE CHARINDEX('%', A1) > 0