【问题标题】:How can I extract GUID's from Dictionary stored in JSON field in SQL?如何从 SQL 中存储在 JSON 字段中的字典中提取 GUID?
【发布时间】:2023-01-16 23:26:13
【问题描述】:

我有下表:

Test_ID Test_JSON
some uniqueidentifer see below
some uniqueidentifier see below

Test_JSON结构如下:

{
    "LaneIds": {
        "1": "a5a8ff96-0291-4ef9-890a-57c1874398bc",
        "2": "7a698a8b-934b-4a57-99c7-29a200d87877",
        "3": "aa30906d-e859-40a8-aedd-ae8ae10d0ae1",
        "4": "ccb05b71-a65a-4db7-b7c9-b4b7251150c7",
        "5": "c10593a9-06c3-49e4-bf4e-9d1c5ece98d4",
        "6": "6eeb9c85-f3ac-44cb-be74-f2d7554ea8d3",
        "7": "1226abb3-58c3-4b1e-844f-f2643d874490",
        "8": "7256ce43-014a-4dd6-a072-f8de2c373688"
    },
    "SomeOtherID": "b9d75ef9-b68d-46ef-9d34-3f5e99f448e2",
    "SomeOtherProperty": 12345
}

我需要在所有 Test_ID 的逗号分隔列表中获取所有车道 ID。所以我的最终输出需要是这样的:

Test_ID Column B
some uniqueidentifier "a5a8ff96-0291-4ef9-890a-57c1874398bc, 7a698a8b-934b-4a57-99c7-29a200d87877, aa30906d-e859-40a8-aedd-ae8ae10d0ae1, etc."
next test_id lane_ids

使用 SQL/T-SQL 执行此操作的最佳方法是什么?

我可以使用 JSON_QUERY() 获取 LaneId,但我特别需要将整数放在关键字段中,并且只返回逗号分隔列表中的 GUID。

【问题讨论】:

  • 你看过OPENJSON吗?

标签: json sql-server tsql


【解决方案1】:

既然你提到你已经在使用JSON_QUERY(),我猜问题出在你的 JSON 路径的定义上。您是否尝试过以下操作: JSON_QUERY(Test_JSON, '$.LaneIds[*]')?这将查询您显示为 JSON 的列,查找键 LaneIds 并从该键中获取所有值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    相关资源
    最近更新 更多