Eli*_*ith 3 sql t-sql sql-server
我在表格中有一个Status列,它有3个值 - 'N/A','Single','Multiple'.某些行具有NULL"状态"列的值.
我需要提取Status不为空且不是'N/A'的所有行.基本上,我需要状态为"Single"或"Multiple"的所有行.
我一直在阅读关于NULL实际上相当于'UNKNOWN'.
如果我说
SELECT *
FROM t_userstatus
WHERE status <> 'N/A'
Run Code Online (Sandbox Code Playgroud)
我得到结果(所有行只包含"单个"或"多个").
我想知道的是,上面的WHERE子句是否总是排除具有NULL值的行?这是预期的行为吗?
是什么导致这个排除空行,即使我没有明确指定它?
在我的查询中,我是否必须明确说出状态IS NOT NULL?
我对编程比较陌生,任何帮助都表示赞赏.
这不是正常的行为,因为N/A(Single&Multiple也是)是与之无关的字符串NULL.即使NULL评估为未知并且可能不返回,您应该明确使用IS NOT NULL.
SELECT [column_list] FROM t_userstatus
WHERE status IS NOT NULL AND status <> 'N/A'
Run Code Online (Sandbox Code Playgroud)
我还建议你养成指定列表的习惯.
| 归档时间: |
|
| 查看次数: |
13370 次 |
| 最近记录: |