如何过滤“显示表格”

时间:2020-02-20 14:53:28

标签: snowflake-cloud-data-platform

我想过滤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

2 个答案:

答案 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

话说回来,您的查询对我有用。

相关问题