从Synapse Azure中的CSV读取JSON数据

ycl3bljg  于 2022-12-14  发布在  其他
关注(0)|答案(1)|浏览(136)

我有一个包含一些列的CSV文件,其中一个列包含JSON内容。我可以用特殊处理来查询这个JSON列吗?
下面举一个例子:ei
我的目标是运行一个查询(openrowset documentation)并获得类似于下面的输出。
| 识别码|名称名称名称|
| - -|- -|
| 第0页|瓦拉莉·斯特里克兰|
| 一个|马修斯哈里森|
| 2个|塞西莉亚·贾尔斯|

uxh89sit

uxh89sit1#

我试着在我的环境中复制同样的东西。
我的示例数据:

将嵌套了Json的列转换为表的形式。首先,我用nvarchar(max)创建了变量。将select Querys的值设置为它。

DECLARE @json nvarchar(max)
SET @json = (SELECT
TOP  100 *
FROM
OPENROWSET(
BULK  'https://dlsg2p.dfs.core.windows.net/fsn2p/jsoncolumn.csv',
FORMAT = 'CSV',
PARSER_VERSION = '2.0',
firstrow=3
) AS [result])

使用下面的语句检查值是否正确分配给变量。

select @json as JSON

使用CROSS APPLY将Json转换为表格格式:

SELECT b.id as ID ,b.name  as  Name
FROM
OPENJSON(@json)
WITH
(
friends NVARCHAR(MAX) AS JSON
) AS a
CROSS  APPLY
OPENJSON(a.friends)
WITH
(
id INT,
name  VARCHAR(MAX)
) AS b;

执行:

输出:

相关问题