gpt4 book ai didi

sql - 在 SQL 中使用 JSON 更新表

转载 作者:行者123 更新时间:2023-12-03 16:14:07 25 4
gpt4 key购买 nike

有没有办法使用 SQL 中的 JSON 字段更新表。

{
"RelationshipType" : [
{
"ID" : 1,
"FromID" : 70,
"ToID" : 12
},
{
"ID" : 3,
"FromID" : 80,
"ToID" : 1
}
]
}

表结构
ID    |    FromID    |    ToID    |
1 | 10 | 12 |
2 | 42 | 17 |
3 | 100 | 1 |

如果我在 SQL 服务器中使用上述 JSON 文件更新表,则应通过匹配 FromID 来更改输出,如下所示。至 ID .
ID    |    FromID    |    ToID    |
1 | 70 | 12 |
2 | 42 | 17 |
3 | 80 | 1 |

为了实现这一点,我目前正在使用以下查询。
DECLARE @Relationship AS TABLE(FromID INT,ToID INT,ID INT)
INSERT INTO @Relationship (FromID,ToID,ID)
SELECT FromID, ToID, ID
FROM OPENJSON(@RelationshipType)
WITH (FromID INT, ToID INT, ID INT)

我正在迭代 @Relationship表并更新数据。是否有一种正确的方法可以使用 JSON 操作而不迭代临时表。

最佳答案

首先需要指定路径'$.RelationshipType'OPENJSON()使其正确提取数据。

二、可以加入OPENJSON()结果就像任何表格一样,也使用 UPDATE , 如下:

UPDATE U
SET FromID = J.FromID
FROM YourTable AS U
JOIN OPENJSON(@RelationshipType, '$.RelationshipType')
WITH (ID INT, FromID INT, ToID INT) J
ON J.ID = U.ID

看看它在行动:
https://dbfiddle.uk/?rdbms=sqlserver_2017&fiddle=c37ef5a175c0f19e0f990dc6a219ce26

关于sql - 在 SQL 中使用 JSON 更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53370886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com