您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

SQL Server 返回不等于 <> 值和 NULL 的行

SQL Server 返回不等于 <> 值和 NULL 的行

我认为你的方法很好:

SELECT *
FROM MyTable
WHERE myCol <> 3 OR myCol IS NULL

由于您要求替代方案,另一种方法是制作您的列NOT NULL并在数据库中存储另一个(否则未使用的)值而不是NULL-例如-1. 然后表达式myCol <> 3将匹配你的假 -NULL就像它与任何其他值一样。

SELECT *
FROM MyTable
WHERE myCol <> 3

但是总的来说,我建议不要使用这种方法。你已经在做的方式是正确的方式。

另外值得一提的是,其他几个数据库支持IS DISTINCT FROM完全符合您的要求:

SELECT *
FROM MyTable
WHERE myCol IS DISTINCT FROM 3

MysqL 具有NULL-safe equal也可用于此目的:

SELECT *
FROM MyTable
WHERE NOT myCol <=> 3

不幸的是,sql Server 尚不支持这两种语法中的任何一种。

SQLServer 2022/1/1 18:47:58 有341人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶