是否可以在嵌套查询的雪花中执行 result_scan

Is it possible to do a result_scan in snowflake with the query nested

查询查询结果的标准流程如下所示。

doc

describe table your_db.your_schema.your_table_name;

select 
    "name"
    ,"type"
    ,*
from table(result_scan(last_query_id())) ;

理想情况下,您应该能够

select  
    "name"
    ,"type"
    ,*
from table(result_scan(describe table your_db.your_schema.your_table_name)) ;

这在现实中有可能吗还是我必须一直做梦?

无法实现,原因如下

  1. 文档明确指出 RESULT_SCAN 函数只接受查询 ID 作为输入参数。

  2. RESULT_SCAN 函数扫描 先前执行的查询 的结果。因此,该查询必须在过去作为不同的交易发生

Clark 的回答也值得补充一下,目前不可能,因为目前 DESCRIBE TABLE 不是 运行 在 COMPUTE 层上,而是仅在 SHARED SERVICES 层(元数据、查询规划师等)。

最初回到我的时代,连一个RESULTS_SCAN都没有,一切都是从外部解析的。因此 RESULT_SCAN 允许您针对先前的结果集 运行 计算层,因此我们有一个两步过程。现在与其他数据库相比,在其他数据库中,一切都是完整的数据库对象,因此一切都可以通过 SQL 访问,这令人沮丧。

但我觉得当你知道 how/why 事情就是这样的时候,这些步骤就很有意义,就像很多事情一样,一旦你得到了一个“工作模式”,你就可以去做了。虽然,一开始是不同的,现在可能会喜欢它。