SQL

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

发布于 2021-04-09 20:51:39

我有以下格式的数据:

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

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

CREATE TABLE #TEMP
(
Node int
)

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

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

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

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

关注者
0
被浏览
82
1 个回答
  • 面试哥
    面试哥 2021-04-09
    为面试而生,有面试问题,就找面试哥。

    尝试类似的东西

    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
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看