json - 当值未命名时将 json 值检索到列中

标签 json sql-server

我在表中有一个名为“用户名”(varchar max,允许空值)的列。该表可能有多个条目,这些条目都存储在该列中。目前显示格式如下:

[“姓名1”,“姓名2”]

我正在尝试将 name1 和 name2 提取到单独的行中。我不知道该怎么做。这是我当前最接近的查询:

select u.id, a.[Username]
from dbo.Users u
CROSS APPLY OPENJSON(Username) WITH ([Username] varchar(max)) a

这正确地将它们拉出行,但行显示 NULL 而不是值。我检查了该名称与语法中的列名称是否匹配,确实如此。

最佳答案

OPENJSON 函数正在查找名为“用户名”的列。相反,请尝试为 OPENJSON 'oj' 指定一个别名,然后在不指定架构的情况下打开 JSON。然后将 oj.value 添加到 SELECT 列表中。像这样的事情

select u.id, oj.[value] as Username
from dbo.Users u
     cross apply openjson(u.Username) oj;

关于json - 当值未命名时将 json 值检索到列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64374267/

相关文章:

python - 无法通过自定义 cloudformation 资源调用 lambda 函数

c++ - 在 Linux 上使用 Qt 连接到 Azure SQL Server

sql - 大量行的表设计选项?

sql - 如何用一个 Sql 查询可视化两个外键

sql-server - SQL : Can't insert a date loop into a column

json - 我如何专门用 Jackson 反序列化 'null'?

java - 使用 GSON 反序列化通用类型

c# - 当模型超出使用范围时实际发生了什么?

json - 如何从交互式图表中抓取 json 数据?

javascript - Gijgo 网格 - 删除行