SAP HANA SQL 无法在 open_json 函数内引用外部表中的列

问题描述 投票:0回答:1

在尝试以表格式转换 JSON 数据时,如果可以引用外部表列,我找不到任何信息。

一个例子:

-- 为数据创建临时表

create local temporary table #test("StorageId" INT, "Items" nvarchar(200));

--插入1条测试数据

insert into #test("StorageId", "Items")
values(1, '[22,33]');

-- 用于将 json 数据转换为表的查询,其中我从外部表传递 json 列

SELECT e."StorageId"
FROM #test AS e
where 22 in (
        select "ItemId" from JSON_TABLE(e."Items", '$[*]' COLUMNS ("ItemId" INT PATH '$'))
    )

此查询返回错误:

(dberror)[259]:无效的表名:表不存在> E:

如果我放置数组字符串而不是外部表列,则查询将执行:

select e."StorageId"
from #test AS e
where 22 in (
        select "ItemId" from JSON_TABLE('[22,33]', '$[*]' COLUMNS ("ItemId" INT PATH '$'))
    )   
sql stored-procedures hana hana-sql-script
1个回答
0
投票

似乎在内部范围内不知道别名

e
。您可以使用完整的表格参考:

SELECT e."StorageId"
FROM #test AS e
where 22 in (
        select "ItemId" from JSON_TABLE(#test."Items", '$[*]' COLUMNS ("ItemId" INT PATH '$'))
    )

如果您正在使用 SAP HANA Cloud,我鼓励您查看其 JSON 文档存储,因为它提供了高性能的按数组元素过滤,即使对于大数据量也是如此。

© www.soinside.com 2019 - 2024. All rights reserved.