gpt4 book ai didi

sql - 在 SQL Server 中从 JSON 中删除空元素

转载 作者:行者123 更新时间:2023-12-04 01:51:47 26 4
gpt4 key购买 nike

想要准备不带空列的 json。

这里是详细的例子

我的表

=================
id , Name
=================
1 , Ali
2 ,
3 , jhon
=================

JSON 的 SQL 语句

(SELECT [Id],[Name] FROM My_Table)
FOR JSON PATH

SQL 结果:

[{
"Id": 1,
"Name": "Ali"
}, {
"Id": 2,
"Name": ""
}, {
"Id": 3,
"Name": "Jhon"
}]

但我想排除没有值的元素,例如 No "Name":"" 以下结果中的元素:

[{
"Id": 1,
"Name": "Ali"
}, {
"Id": 2,
}, {
"Id": 3,
"Name": "Jhon"
}]

已编辑:请注意,我可以应用 CASE 或 UDF 将空值转换为空值,空值可能会从 json 中删除,但它会降低大量记录的整体性能,因此看起来是明智的解决方案。

最佳答案

如果未明确指定 INCLUDE_NULL_VALUES

JSON Auto 默认会忽略空字段。查看更多info.

To include null values in the JSON output of the FOR JSON clause, specify the INCLUDE_NULL_VALUES option.

If you don't specify the INCLUDE_NULL_VALUES option, the JSON output doesn't include properties for values that are null in the query results.

此外,Sql Fiddle

忽略空值

(SELECT [Id], (CASE WHEN Name = '' THEN NULL ELSE Name END) as Name FROM test)
FOR JSON Auto

包括空值

(SELECT [Id],(CASE WHEN Name = '' THEN NULL ELSE Name END) as Name FROM test)
FOR JSON Auto, INCLUDE_NULL_VALUES

关于sql - 在 SQL Server 中从 JSON 中删除空元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52643630/

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