如何将大量列数据插入临时表? [英] How to insert bulk of column data to temp table?

查看:29
本文介绍了如何将大量列数据插入临时表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要连续插入13列数据,数据存储在单个变量中,每部分数据用逗号分隔.

I need to insert 13 columns of data in a row, and the data is stored in a single variable and every part of data is separated by comma.

declare @cldt varchar(max)="SINDA,--,--,--,--,--,--,--,--,30.00,--,--,--";

我有以下临时表

declare @TempTab table (
    idx int identity(1,1),
    Component varchar(200),
    Month1 varchar(max), 
    Month2 varchar(max),
    Month3 varchar(max),
    Month4 varchar(max),
    Month5 varchar(max),
    Month6 varchar(max),
    Month7 varchar(max),
    Month8 varchar(max),
    Month9 varchar(max),
    Month10 varchar(max),
    Month11 varchar(max),
    Month12 varchar(max)
);

如何将上述值插入到这个临时表中?

How can I insert the above value into this temp table?

我尝试了以下代码但没有用:

I had try the below code but no use:

insert into @TempTab select @cldt

推荐答案

DECLARE @xml xml

SELECT @xml = ('<r>' + REPLACE(@cldt,',','</r><r>') + '</r>')

INSERT INTO @TempTab 
SELECT  t.v.value('r[1]', 'varchar(10)') as Component, 
        t.v.value('r[2]', 'varchar(10)') as Month1,
        t.v.value('r[3]', 'varchar(10)') as Month2,
        t.v.value('r[4]', 'varchar(10)') as Month3,
        t.v.value('r[5]', 'varchar(10)') as Month4,
        t.v.value('r[6]', 'varchar(10)') as Month5,
        t.v.value('r[7]', 'varchar(10)') as Month6,
        t.v.value('r[8]', 'varchar(10)') as Month7,
        t.v.value('r[9]', 'varchar(10)') as Month8,
        t.v.value('r[10]', 'varchar(10)') as Month9,
        t.v.value('r[11]', 'varchar(10)') as Month10,
        t.v.value('r[12]', 'varchar(10)') as Month11,
        t.v.value('r[3]', 'varchar(10)') as Month12
FROM @xml.nodes('/') as t(v)

SELECT *
FROM @TempTab 

输出:

idx Component   Month1  Month2  Month3  Month4  Month5  Month6  Month7  Month8  Month9  Month10 Month11 Month12
1   SINDA       --      --      --      --      --      --      --      --      30.00   --      --      --

这篇关于如何将大量列数据插入临时表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆