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

PostgreSQL整数列查询NaN值报错,如何正确操作?

问题分析与解决

核心错误原因

PostgreSQL的integer(整数)类型不支持存储NaN(非数字)值,整数列里根本不可能存在NaN。你用numbers='NaN'查询时,PostgreSQL会尝试将字符串'NaN'转换为整数类型,而'NaN'无法转成有效整数,因此触发语法错误。

正确处理方式

分两种情况处理:

  • 若要查找缺失/未赋值的整数:
    整数列的缺失值以NULL表示,查询语句改为:

    SELECT * FROM my_table WHERE numbers IS NULL;
    
  • 若业务确实需要存储NaN值:
    先将numbers列的类型修改为支持NaN的浮点类型(比如double precision或numeric),示例语句:

    ALTER TABLE my_table ALTER COLUMN numbers TYPE double precision;
    

    之后查询NaN值需使用专用操作符:

    SELECT * FROM my_table WHERE numbers IS NaN;
    

    (注:PostgreSQL中判断浮点类型的NaN不能直接用=,必须用IS NaN操作符)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:15:25