包含空值的字段的SQL表

时间:2011-12-03 21:32:29

标签: sql

一个名为table1的表有一个名为field1的字段,其中包含空值。此查询不返回任何行:

SELECT *
FROM table1
WHERE field1 NOT IN
(
   SELECT field1
   FROM table1
)

我知道有更好的方法来编写此查询。导致此行为的原因是,不使用包含空值的字段。

2 个答案:

答案 0 :(得分:2)

好的,我可能会忽略这一点,但是一种重新定义查询的方法是:

  • 第1步:获取table1.field1

  • 的所有值
  • 第2步:返回在步骤1中获得的值中table1的值不包含的所有field1行。

当然这总是会返回空集?

答案 1 :(得分:0)

假设表中存在主键字段,您可以使用此脚本:

select
    t1.*
from
    dbo.Table1 as t1
where 
    t1.field1 = 'Value1'
    and not exists( select 1 from Table1 as t2 where t1.ID != t2.ID and t2.field1 = 'Value2')
相关问题