【发布时间】:2021-11-24 13:02:38
【问题描述】:
我有json字符串
DECLARE @json nvarchar(max)
SET @json = '{"value": [
{
"AEDAT": "20211119",
"ERDAT": "20211119"
},
{
"AEDAT": "20211119",
"ERDAT": "20211112"
},
{
"AEDAT": "20211123",
"ERDAT": "20211123"
},
{
"AEDAT": "00000000",
"ERDAT": "20211119"
},
{
"AEDAT": "00000000",
"ERDAT": "20211123"
}]}'
然后当我使用OPENJSON 然后(仅第一两行):
key value type
0 {"AEDAT": "20211119", "ERDAT": "20211119"} 5
1 { "AEDAT": "20211119", "ERDAT": "20211112"} 5
我想MAX value 列的值。所以在上面的例子中,结果应该是 20211119。
基于这里1 并根据某人的建议,我得到的错误是
将 nvarchar 值 '{"AEDAT": "20211119", "ERDAT": "20211119"}' 转换为数据类型 int 时转换失败。
关于如何实现相同的任何线索?我是 SQL Server 的新手,因此寻求帮助。
【问题讨论】:
-
看看
OPENJSON。那么它字面意思就像使用MAX一样简单。 -
提问时,您需要提供minimal reproducible example: (1) DDL 和样本数据填充,即 CREATE 表和 INSERT T-SQL 语句。 (2) 你需要做什么,即逻辑和你的代码尝试在 T-SQL 中实现它。 (3) 期望的输出,基于上述#1 中的样本数据。 (4) 您的 SQL Server 版本 (SELECT @@version;)。
-
提示:在从 openjson 返回的 JSON 列上交叉应用 openjson。它甚至在帮助文档中进行了演示。
-
@YitzhakKhabinsky:我已经更新了问题。
标签: json sql-server tsql