json - 检查 SQL Server 中的唯一 JSON 键
解决方案
您可以使用递归公用表表达式来执行此操作。例如:
DECLARE @json NVARCHAR(4000) = N'{
"StringValue":"John",
"IntValue":45,
"TrueValue":true,
"FalseValue":false,
"NullValue":null,
"ArrayValue":["a","r","r","a","y"],
"ObjectValue":{"obj":"ect"}
}';
with q as
(
select [key] path, [key], value, type, 0 level
from openjson(@json)
union all
select concat(q.path,'\',n.[key]), n.[key], n.value, n.type, q.level + 1
from q
cross apply openjson(q.value) n
where q.type in (4,5)
)
select *, count(*) over (partition by path) pathCount
from q
推荐阅读
- android - “E/Surface:getSlotFromBufferLocked:未知缓冲区”当我尝试发送删除请求时
- selenium - 如何在时间类型元素中发送“时间”键?
- python - 如何使用以前的列值自动计算列?
- python - 进入 pandas 数据帧的大型 SQL 查询(64. Mio 行)需要很长时间
- php - php regex 匹配 facebook 页面、组和用户名,但忽略带有查询参数的链接
- c# - .NET Core 项目无法调用使用 NTLM 的 .NET 4.6 类库方法
- angularjs - 如何使用 CSS 样式从 HTML(基于 div 的结构)创建 Excel
- python - 使用复数遍历二维数组中的邻居
- qt5 - 如何在 Qt Designer 中直接将输入小部件添加到 QTreeWidget?
- django - 两次点击 url 时表单未验证失败