查询字段类型为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 合并问题