从表中查询NULL值 - SQL

时间:2013-02-13 00:01:21

标签: sql oracle11g

我有一个具有引用id列的表。此引用标识列包含某些行的主键。现在我想从表中过滤掉包含NULL的所有其余值

PK   REFERENCE_ID
1        1
2        NULL
3        3
4        NULL
5        ab

下面的查询带来了所有具有reference_id的结果,但我想获取REFERENCE_ID列的所有NULL值

select count(*)from table where table.ID not in (select table.reference_id from person)

我已经使用了存在但没有用。重要的是我参考PK搜索它,因为我想从除了PK之外的列REFERENCE_ID中获取包括NULL值的所有值。

2 个答案:

答案 0 :(得分:1)

也许我仍然不清楚你要做什么,但是它可以将原始查询的元素与IS NULL结合起来吗?

SELECT PK, Reference_ID
FROM table 
WHERE table.Reference_ID NOT IN (select PK from table)
  OR table.Reference_ID IS NULL

编辑:我不确定Reference_ID字段中的'ab'。如果Reference_ID是varchar或类似字段,则可能需要这样:

SELECT PK, Reference_ID
FROM table 
WHERE table.Reference_ID NOT IN (select cast(PK as varchar(5)) from table)
  OR table.Reference_ID IS NULL

答案 1 :(得分:0)

你试过了吗?

SELECT Reference_ID
FROM Table
WHERE Reference_ID IS NULL;