SQL将逗号分隔的字符串拆分为多个列

时间:2013-06-11 13:11:27

标签: sql sql-server-2008 csv

我不喜欢SQL,请原谅任何无知。我有一个名为'temp'的表,其中包含一个Field(称为Field1),其中包含行和行的长逗号分隔字符串,因此:

Temp table
Field1
ABC123,1,Z,some text
ABC456,1,q,some text
ABC789,1,r,some text
ABC111,1,y,some text

然后我有一个名为Detail的另一个表,有4个标题。那么如何将临时表中的上述内容插入到临时表中,如下所示:

Detail Table
Field1          Field 2    Field 3          Field 4
ABC123         1             Z                 some text
ABC456         1             q                 some text 
ABC789          1            r                  some text
ABC111         1            y                 some text 

然后,我将使用报告报告服务来报告详细信息表。我需要调用一个函数吗?我一直在阅读,有些人说XML功能更好?我的所有其他代码都在SP中,那么如何从这里调用呢?

提前感谢您的帮助。

此致

迈克尔

1 个答案:

答案 0 :(得分:0)

您正在使用的数据库有很大的不同。以下是如何在MySQL中执行此操作的示例:

insert into detail(field1, field2, field3, field4)
    select substring_index(field1, 1),
           reverse(substring_index(reverse(substring_index(field1, 2)))),
           reverse(substring_index(reverse(substring_index(field1, 3)))),
           reverse(substring_index(reverse(substring_index(field1, 4))))
    from tempTable t

2-4个字段的复杂表达式只是从列表中提取第n个项目的一种方式。