小编典典

在SQL2005中使用一条命令将多行插入到临时表中

sql

我有以下格式的数据:

-1,-1,-1,-1,701,-1,-1,-1,-1,-1,304,390,403,435,438,439,442,455

我需要将其插入到临时表中,如下所示:

CREATE TABLE #TEMP
(
Node int
)

这样我就可以将其与另一个表中的数据进行比较。

上面的数据代表“节点”列的单独行。

是否有一种简单的方法可以将所有这些数据全部插入一个命令中?

另外,数据实际上将以字符串形式进入,因此…我需要能够将其连接到SQL查询字符串中。显然,如果需要,我可以先对其进行修改。


阅读 192

收藏
2021-04-07

共1个答案

小编典典

尝试类似的东西

CREATE TABLE #TEMP 
( 
    Node int 
)


DECLARE @textXML XML
DECLARE @data NVARCHAR(MAX), 
        @delimiter NVARCHAR(5)
SELECT  @data = '-1,-1,-1,-1,701,-1,-1,-1,-1,-1,304,390,403,435,438,439,442,455 ',
        @delimiter = ','
SELECT    @textXML = CAST('<d>' + REPLACE(@data, @delimiter, '</d><d>') + '</d>' AS XML)

INSERT INTO #TEMP
SELECT  T.split.value('.', 'nvarchar(max)') AS data
FROM    @textXML.nodes('/d') T(split)

SELECT * FROM #TEMP

DROP TABLE #TEMP
2021-04-07