Sql server 从逗号分隔字符串(T-SQL)向表中插入数据

Sql server 从逗号分隔字符串(T-SQL)向表中插入数据,sql-server,tsql,Sql Server,Tsql,我有一个整数列的表,数据如下: 4,89,8,1 如何在列中插入上述整数。这可以通过 例如: Select * From (Values (1),(2),(3),(4)) tabA (ColA) 自动: DECLARE @DataSource TABLE ( [ColumnValue] INT ); DECLARE @Input VARCHAR(MAX) = '4,89, 8, 1'; DECLARE @InputXML XML = CAST(N'<r><![CD

我有一个整数列的表,数据如下:

4,89,8,1


如何在列中插入上述整数。

这可以通过

例如:

Select *
From (Values (1),(2),(3),(4)) tabA (ColA)
自动:

DECLARE @DataSource TABLE
(
    [ColumnValue] INT
);

DECLARE @Input VARCHAR(MAX) = '4,89, 8, 1';

DECLARE @InputXML XML = CAST(N'<r><![CDATA[' + REPLACE(@Input, ',', ']]></r><r><![CDATA[') + ']]></r>' AS XML);

INSERT INTO @DataSource
SELECT RTRIM(LTRIM(Tbl.Col.value('.', 'INT'))) AS Code 
FROM @InputXML.nodes('//r') Tbl(Col)
DECLARE@DataSource表
(
[ColumnValue]INT
);
声明@Input VARCHAR(MAX)='4,89,8,1';
声明@InputXML XML=CAST(N''为XML);
插入@DataSource
选择RTRIM(LTRIM(Tbl.Col.value('.','INT'))作为代码
来自@InputXML.nodes('//r')Tbl(Col)

到目前为止,您尝试了什么?你被困在哪里?请在你的答案中添加一个简短的描述,使其更有用
DECLARE @DataSource TABLE
(
    [ColumnValue] INT
);

DECLARE @Input VARCHAR(MAX) = '4,89, 8, 1';

DECLARE @InputXML XML = CAST(N'<r><![CDATA[' + REPLACE(@Input, ',', ']]></r><r><![CDATA[') + ']]></r>' AS XML);

INSERT INTO @DataSource
SELECT RTRIM(LTRIM(Tbl.Col.value('.', 'INT'))) AS Code 
FROM @InputXML.nodes('//r') Tbl(Col)