T-Sql,在列中拆分字符串并插入表中

时间:2016-06-29 07:53:34

标签: mysql sql-server database tsql

我有这样的表

{{1}}

我想要一个查询来选择这个表,然后在其他表中插入此表。

{{1}}

拆分所有电话号码并使用类似的字段名称保存。

1 个答案:

答案 0 :(得分:2)

您可以尝试此操作(仅使用T-SQL):

DECLARE @DataSource TABLE
(
    [Name] VARCHAR(12)
   ,[Email] VARCHAR(12)
   ,[PhoneNumber] VARCHAR(1024)
);

INSERT INTO @DataSource ([Name], [Email], [PhoneNumber])
VALUES ('alis', 'alis@123.com', '+989355555;+989366666;+9803777777')
      ,('John', 'john@yah.com', '+989122222')
      ,('sara', 'sara@yah.com', '+989113212;+989113312');

SELECT DS1.[Name]
      ,DS1.[Email]
      ,DS3.[value]
FROM @DataSource DS1
CROSS APPLY
(
    SELECT CAST(('<X>'+REPLACE(DS1.[PhoneNumber] ,';' ,'</X><X>')+'</X>') AS XML)
) DS2 ([Col])
CROSS APPLY
(
    SELECT T.C.value('.', 'varchar(32)') as value 
    FROM DS2.Col.nodes('X') as T(C)
) DS3 ([value]);

enter image description here