【问题标题】:Insert Array of values into columns of the table in SQL Server在 SQL Server 中将值数组插入表的列中
【发布时间】:2017-06-08 04:30:52
【问题描述】:

我有一个数组

(1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16;)

我想将这个值数组插入到表中

Column1 |  Column2 | Column3 | Column4
-----------------------------------------
    1   |   2      |   3     |    4
    5   |   6      |   7     |    8
    9   |  10      |  11     |   12
   13   |  14      |  15     |   16

【问题讨论】:

  • 您是从编程语言的角度提出这个问题,还是只是想从概念上将这些数据直接添加到 SQL Server 中?

标签: sql-server


【解决方案1】:

试试这个:

INSERT INTO TableName (Column1,Column2,Column3,Column4) 
VALUES (1,2,3,4),(5,6,7,8),(9,10,11,12),(13,14,15,16)

【讨论】:

  • 有没有办法做到这一点“转置”? IE。提供每一列而不是每一行的所有值?我问是因为我已经为每一列都有大数组,并且似乎很愚蠢地循环它们只是为了根据行来重构数据。
【解决方案2】:
INSERT INTO TableName
VALUES 
(1,2,3,4),(5,6,7,8),(9,10,11,12),(13,14,15,16)

【讨论】:

    【解决方案3】:
    DECLARE @array varchar(max) = '(1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16;)'
    SET @array = REPLACE( REPLACE(@array, ';', '), ('), ', ()', '')
    DECLARE @SQLQuery VARCHAR(MAX) = 'INSERT INTO TABLENAME (Column1,Column2,Column3,Column4) VALUES ' + @array
    EXEC (@SQLQuery)
    

    【讨论】:

    • 我想在 column1 中插入 1,在 column2 中插入 2,在 column3 中插入​​ 3,在 column4 中插入 4............ 不是这样
    • 它的作用完全一样。试试看...@Vinod
    • 我越来越喜欢(1,2,3,4), (5,6,7,8), (9,10,11,12), (13,14,15,16 ) 但我需要 1 在第 1 列,2 在第 2 列,3 在第 3 列,4 在第 4 列............
    • 如果您运行的代码与上述完全相同,您将获得如问题所示的准确输出。
    • 这是我执行的 -Select REPLACE( REPLACE('(1,2,3,4;5,6,7,8;9,10,11,12;13,14,15 ,16;)', ';', '), ('), ', ()', '') 我得到了 (1,2,3,4), (5,6,7,8), ( 9,10,11,12), (13,14,15,16)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2021-12-03
    • 1970-01-01
    相关资源
    最近更新 更多