一个名为table1的表有一个名为field1的字段,其中包含空值。此查询不返回任何行:
SELECT *
FROM table1
WHERE field1 NOT IN
(
SELECT field1
FROM table1
)
我知道有更好的方法来编写此查询。导致此行为的原因是,不使用包含空值的字段。
答案 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')