Oracle max(number)返回null

问题描述 投票:-1回答:1

我正在连接到现有数据库,并且该数据库具有定义如下的表:

Name            Null?    Type           
--------------- -------- -------------- 
M_ID                     NUMBER         
USER_ID                  VARCHAR2(100)  
LOCATION                 VARCHAR2(10)   
AGENT                    VARCHAR2(9)    
LNAME                    VARCHAR2(50)   
FNAME                    VARCHAR2(50)   
USER_TYPE                VARCHAR2(20)   
BUSS_TYPE                VARCHAR2(50)  

当我进行选择时,我会看到类似的内容

95879713  ab1212    BGG  0010   Smith   Tylor     null    null
95879714  c21322    BAD  0010   Doe     Jane      null    null

现在,如果我在M_ID上执行选择而不执行最大选择,我将获得价值。但是,如果我用MAX对M_ID进行选择,它将返回null。即。

select MAX(M_ID) from Table_X;
M_ID
(null)

例如:

select M_ID from Table_X;

*M_ID*
12000
12001
15690
...

但是如果我看到其中有空值

select M_ID from Table_X order by M_ID desc;

M_ID
(null)
(null)
(null)
...

现在奇怪的是,如果我只是尝试选择所有那些空M_ID,我什么也得不到。

select * from Table_X where M_ID is null or M_ID = '';

no result returned...

这怎么可能?请注意,我看到的最大值是

706307090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

在表中,但不确定是否是原因。有没有办法解决这个问题?

sql oracle
1个回答
0
投票

[正如其他人已经提到过一些支票一样。另外,检查您在此处写入的(null)确实是NULL值还是空格?您正在此处查询中查询空白值:select * from Table_X where M_ID is null or M_ID = '';。这看起来极不可能,并且不可能用IS NULL子句不返回NULL。试试这个:

select * from Table_X where M_ID is null or M_ID = ' ';

© www.soinside.com 2019 - 2024. All rights reserved.