代码之家  ›  专栏  ›  技术社区  ›  sadmin

SQL Server两个表

  •  0
  • sadmin  · 技术社区  · 1 年前

    我对SQL很陌生,所以我正在努力找到最佳的解决方法。

    我有两张桌子:

    Table1 :

    A. B C
    aa bb js[12]
    复写的副本 dd js[45]

    Table2 :

    A. B C D
    aa bb js[1] js[2]
    复写的副本 dd js[4] js[5]

    表1中的“A”列为 AUTO_INCREMENTED ,用于id生成。一个应用程序将JSON发送到列C中。我想从该列解析JSON,并将这些部分插入表2中。

    我弄清楚了如何解析JSON并插入它,但我找不到正确复制数据的最佳解决方案,因为 WHERE 预计在数据转换期间将满足条件。我找不到如何在这两个表之间创建引用的解决方案。

    我目前的代码是:

    INSERT INTO operation (ref)
        SELECT JSON_VALUE(info, '$.ReferenceID')
    
    INSERT INTO operation (isdp)
        SELECT JSON_VALUE(info, '$.isDenominatePossible')
    
    INSERT INTO operation (crid)
        SELECT JSON_VALUE(info, '$.current_rate.ID')
    
    INSERT INTO operation (fcc)
        SELECT JSON_VALUE(info, '$.current_rate.Currency')
    

    这是我得到的结果:

    裁判 isdp crid 催化裂化
    00716631 无效的 无效的 无效的
    00716632 无效的 无效的 无效的
    00716633 无效的 无效的 无效的
    00716634 无效的 无效的 无效的
    00716635 无效的 无效的 无效的
    00716636 无效的 无效的 无效的
    无效的 真的 无效的 无效的
    无效的 真的 无效的 无效的
    无效的 真的 无效的 无效的
    无效的 真的 无效的 无效的
    无效的 真的 无效的 无效的
    无效的 真的 无效的 无效的
    无效的 无效的 1. 无效的
    无效的 无效的 1. 无效的
    无效的 无效的 1. 无效的
    无效的 无效的 1. 无效的
    无效的 无效的 1. 无效的
    无效的 无效的 1. 无效的
    无效的 无效的 无效的 美元
    无效的 无效的 无效的 美元
    无效的 无效的 无效的 美元
    无效的 无效的 无效的 美元
    无效的 无效的 无效的 美元
    无效的 无效的 无效的 美元

    是否可以将这些值排列在一行中?

    我想改为:

    裁判 isdp crid 催化裂化
    00716631 真的 1. 美元
    00716632 真的 1. 美元
    00716633 真的 1. 美元
    00716634 真的 1. 美元
    00716635 真的 1. 美元
    00716636 真的 1. 美元
    1 回复  |  直到 1 年前
        1
  •  1
  •   Joel Coehoorn    1 年前

    如果没有更好的样本,很难确定,但试试这个:

    INSERT INTO operation (ref, isdp, crid, fcc)
    SELECT
        JSON_VALUE(info, '$.ReferenceID'),
        JSON_VALUE(info, '$.isDenominatePossible'),
        JSON_VALUE(info, '$.current_rate.ID'),
        JSON_VALUE(info, '$.current_rate.Currency')
    FROM ...