如何从 MS SQL Json 字符串数组中选择字符串行?

win*_*ner 1 sql-server sql-server-2016 sql-server-json

我有一个包含 JSON 的文本字符串,如下所示:

'{ "d" : [ "test0", "test1", "test2" ] }'
Run Code Online (Sandbox Code Playgroud)

我想以行的形式检索数组的项目。

+------------+
|   data     | 
+------------+ 
|  test0     | 
|  test1     | 
|  test2     | 
+------------+  
Run Code Online (Sandbox Code Playgroud)

网络上的所有示例都展示了如何使用“对象数组”完成它,但我想用一个简单的“字符串数组” MS 示例来完成。

默认查询

+------------+
|   data     | 
+------------+ 
|  test0     | 
|  test1     | 
|  test2     | 
+------------+  
Run Code Online (Sandbox Code Playgroud)

只返回一个表,其中包含每个条目的键、值、类型

+-----+-------+------+
| key | value | type |
+-----+-------+------+
|   0 | test0 |    1 |
|   1 | test1 |    1 |
|   2 | test2 |    1 |
+-----+-------+------+
Run Code Online (Sandbox Code Playgroud)

问题是,我不知道如何设置with查询的部分,以便查询返回一行。

select * from OPENJSON('{"d":["test0","test1","test2"]}', '$.d')
Run Code Online (Sandbox Code Playgroud)

只返回:

+------+
| data |
+------+
| NULL |
| NULL |
| NULL |
+------+
Run Code Online (Sandbox Code Playgroud)

小智 5

select * from OPENJSON('{"d":["test0","test1","test2"]}', '$.d') 
    with(data nvarchar(255) '$')  
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述