如何在Snowflake中使用not less than(不小于)运算符
Snowflake 中查询“不小于指定值”行的正确实现方式
首选方案:使用标准SQL运算符 >=
Snowflake 完全支持SQL标准的大于等于运算符>=,可以直接用来实现“不小于指定值”的筛选逻辑,这是最推荐的写法,可读性和执行效率都是最优的。
示例:查询sales表中amount字段不小于100的所有行
SELECT * FROM sales WHERE amount >= 100;
等价替代写法:使用NOT <
如果需要明确体现“不小于”的语义,也可以使用NOT加小于运算符的组合,和>=的执行效果、执行计划完全一致:
SELECT * FROM sales WHERE NOT amount < 100;
关于!<不生效的说明
!<是部分数据库(如SQL Server)支持的非标准比较运算符,Snowflake 并未兼容该语法,因此使用时会报错或者返回不符合预期的结果,不建议使用。
注意事项
如果筛选字段存在NULL值,上述两种写法都会自动排除NULL值的行,因为NULL与任意数值比较的结果均为UNKNOWN,不会被纳入返回结果。如果需要同时保留NULL值的行,可以补充判断条件:
SELECT * FROM sales WHERE amount >= 100 OR amount IS NULL;
内容的提问来源于stack exchange,提问作者Chris90
相关产品推荐
相关产品推荐

