我想过滤show tables
的输出。
文档中有one example关于如何使用result_scan(last_query_id())
进行此操作的示例,但对我而言,该示例不起作用:
show tables;
select "schema_name", "name" as "table_name", "rows"
from table(result_scan(last_query_id()))
where "rows" = 0;
-- SQL compilation error: error line 1 at position 8 invalid identifier 'SCHEMA_NAME'
列SCHEMA_NAME
实际上在show tables
的输出中,
所以我不明白怎么了。
最好
Davide
答案 0 :(得分:2)
在您的帐户上运行以下命令,并查看其设置为:
show parameters like 'QUOTED_IDENTIFIERS_IGNORE_CASE';
如果将其设置为TRUE,则它会忽略查询中的引号,这将使列名大写,而列名与SHOW输出的小写名不匹配。
要解决您自己的会话,可以运行以下命令:
ALTER SESSION SET QUOTED_IDENTIFIERS_IGNORE_CASE = False;
如果愿意,还可以在用户或帐户级别更改此设置。不建议您将此值设置为TRUE。
答案 1 :(得分:0)
您可以使用$<col_n>
语法(行号为#8)引用过滤器列。
示例:
show tables;
select *
from table(result_scan())
where $8 > 5
话说回来,您的查询对我有用。