查询字段类型为numeric时,where条件与‘ ’对比报错

Posted 瀚高PG实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查询字段类型为numeric时,where条件与‘ ’对比报错相关的知识,希望对你有一定的参考价值。

目录
环境
症状
问题原因
解决方案

环境
系统平台:Linux x86-64 Red Hat Enterprise Linux 7
版本:4.5
症状
在查询中字段类型为numeric时加where条件不等于空时报错,无效的类型numeric 输入语法:’’

问题原因
瀚高数据库中numeric不能与’ '进行对比,在查询时where条件不能写为 where numeric = ‘’;

解决方案
在瀚高数据库中,字段类型为numeric时空值只能是null,不能为’ ’ 修改时去掉where条件 = ’’使用 is null查询;

例如:

test=> create table test_numeric(id numeric);
CREATE TABLE

test=> insert into test_numeric values (0);
INSERT 0 1
test=> insert into test_numeric values (null);
INSERT 0 1
test=> insert into test_numeric values (null);
INSERT 0 1
test=> insert into test_numeric values (1);
INSERT 0 1
test=> select * from test_numeric ;
 id
----
  0


  1
(4 行记录)

test=> select * from test_numeric where id = '';
错误:  无效的类型 numeric 输入语法: ""1行select * from test_numeric where id = '';
                                           ^
test=> select * from test_numeric where id is null;
 id
----


(2 行记录)

以上是关于查询字段类型为numeric时,where条件与‘ ’对比报错的主要内容,如果未能解决你的问题,请参考以下文章

从数据类型 varchar 转换为 numeric 时出错.

请教:SQL同一数据库中,两个查询结果数据类型不同时的union all 合并问题

Acess的查询条件,怎样设定为“包含某个字段”,“不包含某个字段”又该怎么设呢?

mysql使用where条件数字类型被强转

SQL 查询不起作用 - 使用 Where 条件不匹配

从零开始学SQL:where条件查询与连接