GPG*_*GVM 3 sql t-sql sql-server
我有一张包含782,856条记录的表格.此表中有一列PEOPLE_TYPE是varchar(20).我不认为表模式很重要,但如果确实如此,我很乐意发布它.
它具有这些不同的值(parens是每种类型的计数):
NULL (782,101)
ANONYMOUS (1)
BOARD (530)
USER (224)
Run Code Online (Sandbox Code Playgroud)
那么为什么这个选择返回这些结果?
select * from people where PEOPLE_TYPE != 'BOARD'
Run Code Online (Sandbox Code Playgroud)
这返回225行... USER&ANONYMOUS ....为什么不包括我的空值...因为我现在已经执行了文本搜索并且无法真正比较NULL,所以它们被删除了?
感谢您对我的补救问题的耐心等待.
NULL是一件奇怪的事情.与NULL的任何比较都是false:
NULL = NULL为false
NULL!=任何东西都是假的
NULL!= NULL也是false.
你必须说像column这样的东西是null,或者column不是null.
您的查询需要
select * from people where PEOPLE_TYPE != 'BOARD' or PEOPLE_TYPE is null
Run Code Online (Sandbox Code Playgroud)