没有名称的TSQL JSON_VALUE数组

时间:2019-04-10 22:05:28

标签: json tsql

试图在MS SQL 2016中实现以下功能,但需要MS SQL JSON专家来提供帮助。

我在文本字符串中有一个带有JSON的表

  [
  {
    "static-list-id": 37,
    "internal-list-id": 41,
    "timestamp": 1554831874747,
    "vid": 9350104,
    "is-member": true
  },
  {
    "static-list-id": 39,
    "internal-list-id": 43,
    "timestamp": 1554831874931,
    "vid": 9350104,
    "is-member": true
  }
  ]'

这是我的SQL语句,认为我可能需要JSON_QUERY

SELECT 
    JSON_VALUE([MyNVarCharWithJSONColumn],'strict $."static-list-id"') AS static_list_id
FROM
  [MyTable] C
  WHERE ISJSON([MyNVarCharWithJSONColumn])>0

这些是我想要的SQL语句的结果,每行

static_list_id
--------------
37
39

非常感谢您的帮助

1 个答案:

答案 0 :(得分:2)

您可以使用:

SELECT a.static_list_id
FROM MyTable 
CROSS APPLY OPENJSON(MyNVarCharWithJSONColumn)
WITH (static_list_id INT N'$."static-list-id"') AS a;

db<>fiddle demo