如何在 SQL 中选择列内的嵌套值

问题描述 投票:0回答:1
A B C
a {“x”:1.0,“y”:空} c

什么查询可以帮助我选择 1.0?

如果我写

SELECT B.x 

我收到多部分标识符无法绑定错误。我认为这是由于引号造成的。

sql sql-server
1个回答
0
投票

一个基本示例——OPENJSON 和 With 来获取 A 值。如果没有找到,则返回 null。

if(OBJECT_ID('tempdb..#demo') is not NULL)
    drop table #demo

SELECT 
    '{"A":1.0,"B":0.0}' JsonColumn
INTO #demo


SELECT 
    * 
FROM #demo d
OUTER APPLY (
    SELECT 
        *
    FROM OPENJSON(d.JsonColumn) with (A decimal(18,1))
) j

结果:

JsonColumn A
{"A":1.0,"B":0.0} 1.0
© www.soinside.com 2019 - 2024. All rights reserved.