Snowflake中如何筛选纯数值与纯字符列数据?
Snowflake 纯数值/纯字符列筛选解决方案
筛选仅含数值的Pid记录
如果Pid是字符串类型,使用正则匹配全数字:
SELECT * FROM product WHERE Pid RLIKE '^[0-9]+$';
如果Pid是数值类型但存在无效值(比如混入非数值内容),可通过TRY_CAST验证:
SELECT * FROM product WHERE TRY_CAST(Pid AS INTEGER) IS NOT NULL;
筛选仅含字符的Pname记录
匹配仅大小写字母的记录:
SELECT * FROM product WHERE Pname RLIKE '^[a-zA-Z]+$';
若需支持带重音的Unicode字母,改用Unicode字符类:
SELECT * FROM product WHERE Pname RLIKE '^\\p{L}+$';
关于LIKE通配符失效的原因
Snowflake的LIKE仅支持基础通配符%(任意长度字符)和_(单个字符),不支持[0-9]这类正则字符集语法。复杂模式匹配必须依赖RLIKE(或REGEXP_LIKE)来实现正则匹配。
内容的提问来源于stack exchange,提问作者jaiparkumar
相关产品推荐
相关产品推荐

