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

Snowflake中如何筛选以‘_+数字’结尾的表名

解决Snowflake中查询以“_+数字”结尾表名的问题

你的原语句失效的原因是:Snowflake的LIKE语法不支持正则表达式的$(结尾匹配)、[0-9](数字范围)这类规则,它只认%(任意长度字符)和_(单个字符)两个通配符。虽然你用^转义了下划线,但后面的[0-9]$会被当作普通字符串处理,自然匹配不到目标表名。

下面是两种可行的正确写法:

方法1:使用正则表达式匹配(推荐)

直接用Snowflake支持的REGEXP_LIKE函数,精准匹配“下划线+一个或多个数字结尾”的表名:

SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE REGEXP_LIKE(TABLE_NAME, '_[0-9]+$');
  • 正则说明:
    • _:匹配实际的下划线字符
    • [0-9]+:匹配1个及以上的数字
    • $:限定匹配必须在字符串结尾

方法2:结合LIKE与字符串函数(不用正则的方案)

如果偏好纯通配符写法,可以通过定位最后一个下划线的位置,判断后续字符是否全为数字:

SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE '%\_%'
  AND TRY_CAST(RIGHT(TABLE_NAME, LENGTH(TABLE_NAME) - CHARINDEX('_', REVERSE(TABLE_NAME)) + 1) AS INT) IS NOT NULL;

这里通过REVERSE找到最后一个下划线的位置,截取后续内容后尝试转为整数,能转成的说明全是数字。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 13:09:58