2011-03-10 43 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