【发布时间】:2023-04-04 16:26:01
【问题描述】:
我有这个列(来自 BigCommerce 数据库的导出),它在单个列中包含自定义字段。这是数据的一个示例:
[{"Name":"Unit Number","Value":"3698"},{"Name":"Region","Value":"Eastern Great Lakes (WNY, W PA)"}]
我需要一种方法来弄清楚如何从中提取字段/值对。在这个示例中,我想得到,作为输出:
Unit Number:3698
Region:Eastern Great Lakes (WNY, W PA)
我希望因此有一个 UDF,我可以将它作为选择查询的一部分运行,它只给我字段名称和作为字符串输出的值(如上例所示)。源表中的每一列数据都有这种格式。通常,列数据有两个字段/值对,但有时没有,有时两个,有时三个。换句话说,该列包含任意数量的可变字段/值对。
是否有人对如何构建 UDF 以帮助从该字符串中获取这些数据元素有任何建议?
我正在修补一些东西,但我被困住了。我开始尝试删除无关的字符 [,] 和 {,} ,它们描绘了字段和值。我正在修改字符串拆分函数,但不是在单个字符上拆分,而是我不知道如何根据开括号或右括号 {,} 进行拆分以缩小范围。
Unit Number:3698 | Region:Eastern Great Lakes (WNY, W PA)
【问题讨论】:
-
这似乎是 JSON 内容。您是否考虑过使用 SQL Server 的 JSON 函数?
-
MSSQL 2016 及更高版本支持 JSON(这就是你所拥有的),请参阅 JSON_VALUE()
标签: sql-server user-defined-functions