I am newish to SQL to please excuse any ignorance. I have a table, called \'temp\' that contains one Field with one long comma seperated string, thus:
Field1
Ap
Try this
;WITH Split_Fields (Field, xmlfields)
AS
(
SELECT Field1 AS Field,
CONVERT(XML,''
+ REPLACE(Field1,',', ' ') + ' ') AS xmlfields
FROM Table1
)
SELECT Field,
xmlfields.value('/Fields[1]/field[1]','varchar(100)') AS Field1,
xmlfields.value('/Fields[1]/field[2]','varchar(100)') AS Field2,
xmlfields.value('/Fields[1]/field[3]','varchar(100)') AS Field3,
xmlfields.value('/Fields[1]/field[4]','varchar(100)') AS Field4,
xmlfields.value('/Fields[1]/field[5]','varchar(100)') AS Field5
FROM Split_Fields
SQLFiddle Demo
OR
SELECT Field,
xmlfields.value('/Fields[1]/field[1]','varchar(100)') AS Field1,
xmlfields.value('/Fields[1]/field[2]','varchar(100)') AS Field2,
xmlfields.value('/Fields[1]/field[3]','varchar(100)') AS Field3,
xmlfields.value('/Fields[1]/field[4]','varchar(100)') AS Field4,
xmlfields.value('/Fields[1]/field[5]','varchar(100)') AS Field5
FROM
(
SELECT
Field1 AS Field
,CONVERT(XML,'' + REPLACE(Field1,',', ' ') + ' ') AS xmlfields
FROM Table1
) Split_Fields
To insert into another table (ex: Detail) try below
;WITH Split_Fields (Field, xmlfields)
AS
(
SELECT
Field1 AS Field
,CONVERT(XML,'' + REPLACE(Field1,',', ' ') + ' ') AS xmlfields
FROM Table1
)
INSERT INTO Detail
SELECT
xmlfields.value('/Fields[1]/field[1]','varchar(100)') AS Field1,
xmlfields.value('/Fields[1]/field[2]','varchar(100)') AS Field2,
xmlfields.value('/Fields[1]/field[3]','varchar(100)') AS Field3,
xmlfields.value('/Fields[1]/field[4]','varchar(100)') AS Field4,
xmlfields.value('/Fields[1]/field[5]','varchar(100)') AS Field5
FROM Split_Fields