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

Postgres报operator does not exist: bigint == integer 如何比较row_number与数值

报错根因
  • PostgreSQL 的SQL语法中,相等比较只能使用单等号=,不支持双等号==,这是本次报错的核心原因,和bigint、integer的类型差异无关。
  • 你尝试类型转换后问题未解决,是因为没有修正运算符的语法错误。
正确实现代码
create table gps (laf int, "timestamp" timestamp);
-- 写法1:无需显式类型转换,PostgreSQL会自动兼容两种数值类型的比较
select * from 
  (select *, row_number() over() as row_num from gps) as yo
where row_num = 10;

如果有特殊场景需要显式对齐类型,可以使用如下写法:

-- 写法2:显式转换类型的实现
select * from 
  (select *, row_number() over() as row_num from gps) as yo
where row_num = cast(10 as bigint);
-- 也可以用PostgreSQL特有的简写语法:10::bigint
注意事项

窗口函数row_number() over()返回的默认列名并不是row_number,建议手动指定别名后再在外层查询引用,避免出现列不存在的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:09:03