gpt4 book ai didi

sql-server - 在 SQL Server 中查询 json 键名

转载 作者:行者123 更新时间:2023-12-03 16:05:20 26 4
gpt4 key购买 nike

鉴于这样的json...

{"setting1":"A","setting2":"B","setting3":"C"}

我希望看到这样的结果......
+----------+-------+
| name | value |
+----------+-------+
| setting1 | A |
| setting2 | B |
| setting3 | C |
+----------+-------+

我的挣扎是我试图找出如何提取 key 的名称(即“setting1”、“setting2”、“setting3”等)

我可以执行类似以下查询的操作,但我不知道会有多少设置以及它们的名称是什么,所以我想要更动态的东西。
SELECT
B.name,
B.value
FROM OPENJSON(@json) WITH
(
setting1 varchar(50) '$.setting1',
setting2 varchar(50) '$.setting2',
setting3 varchar(50) '$.setting3'
) A
CROSS APPLY
(
VALUES
('setting1', A.setting1),
('setting2', A.setting2),
('setting3', A.setting3)
) B (name, value)

使用 XML,我可以做一些简单的事情:
DECLARE @xml XML = '<settings><setting1>A</setting1><setting2>B</setting2><setting3>C</setting3></settings>'
SELECT
A.setting.value('local-name(.)', 'VARCHAR(50)') name,
A.setting.value('.', 'VARCHAR(50)') value
FROM @xml.nodes('settings/*') A (setting)

有什么办法可以用 SQL Server 的 json 功能做类似的事情吗?

最佳答案

Aaron Bertrand 在 Advanced JSON Techniques 中写了关于 json 键值的文章

SELECT x.[Key], x.[Value] 
FROM OPENJSON(@Json, '$') AS x;

返回
Key         Value
------------------
setting1 A
setting2 B
setting3 C

关于sql-server - 在 SQL Server 中查询 json 键名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44233644/

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