我有这样的表
{{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]);