我有一个字符串列表,其中的连接值由分隔符分隔,如下所示:
DECLARE @stringlist NVARCHAR(MAX) = 'company_no,emp_no,emp_name,emp_type,salary_type....'
我有一个临时表,其动态数量的无名列包含以下数据:
------------------------------
001 A01 John P A
001 A05 Mary P A
我想拆分字符串并将每个拆分字符串插入一行中的每一列,例如下面:
-----------------------------------------------
company_no emp_no emp_name emp_type salary_type
001 A01 John P A
001 A05 Mary P A
我可以将字符串拆分成多行。但是,如何拆分和循环临时表中的每一列以插入这些值?
答案 0 :(得分:5)
假设您的示例数据和所需结果表明目标表中的所有列都是某种字符串类型,我建议不要拆分字符串。
而是从它创建一个动态sql插入语句:
DECLARE @Sql nvarchar(max);
SET @Sql = 'INSERT INTO <TempTableNameHere>
VALUES ('''+ REPLACE(@stringList, ',', ''',''') + ''');';
EXEC(@Sql);