You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL中如何查询LIST返回的stage文件列表获取最新上传文件

获取Stage中最新上传文件的实现方案

不用手动提取LIST返回结果的最后一条,Snowflake原生支持两种更稳妥的实现方式,还能规避默认排序规则变动导致的逻辑bug:

  • 方案1:适配你现有执行流程,两步完成
    正常执行你原本的LIST语句即可:

    LIST @my_stage;
    

    执行完立刻运行下面的语句,会直接读取上一条查询的返回结果,按文件最后修改时间倒序取第一条,就是最近上传的文件:

    SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID()))
    ORDER BY "last_modified" DESC
    LIMIT 1;
    

    这个方法完全兼容你现有的LIST逻辑,哪怕你给LIST加了PATTERN过滤、指定了子路径前缀,后续的查询都能自动适配过滤后的结果集,不用额外调整。

  • 方案2:单条语句直接查询,无需分两步执行
    可以直接读取Stage的内置文件元数据,不用单独执行LIST命令,单条SQL就能直接拿到最新文件记录:

    SELECT
      METADATA$FILENAME AS file_path,
      METADATA$FILE_LAST_MODIFIED AS upload_time,
      METADATA$FILE_SIZE AS file_size,
      METADATA$FILE_CONTENT_KEY AS file_md5
    FROM @my_stage
    ORDER BY upload_time DESC
    LIMIT 1;
    

    这种写法灵活性更高,你可以按需加过滤条件,比如只查根目录下的CSV格式最新文件,直接加WHERE条件即可:

    WHERE METADATA$FILENAME LIKE '%.csv' AND METADATA$FILENAME NOT LIKE '%/%'
    

提醒:不要依赖LIST语句默认的日期升序逻辑直接取最后一条,官方文档没有承诺该排序规则会永久保持不变,显式指定last_modified字段倒序取数的逻辑更稳定,不会因为平台版本迭代出现异常。

内容的提问来源于stack exchange,提问作者user18466310

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 21:12:18