SQL 语句 - Select 其中 * 不等于
SQL Statement - Select Where * Not equal to
我正在尝试提取列“Drive_Status”不等于“成功”的所有数据,如有任何帮助,将不胜感激。
SELECT * FROM [Main$] WHERE (Drive_Status <> 'Success')
上述语句的问题是“Drive_Status”列中为 Null 或标记为“错误”的数据未返回。
我使用的数据库是Excel数据库
NULL
is not a value 所以你不能使用 <>
来检查 NULL
.
改为尝试以下操作:
SELECT * FROM [Main$] WHERE Drive_Status <> 'Success' OR Drive_Status IS NULL
如果您想将 NULL
值包含为“不等于”,那么您需要一个 NULL
安全运算符。否则,<>
returns NULL
在 WHERE
子句中被视为“假”。
您还没有指定您的数据库,但标准 SQL 提供了一个:
where Drive_Status is distinct from 'Success'
如果 Drive_Status
是 NULL
,那么这个 returns TRUE
而不是 NULL
.
并不是所有的数据库都支持这个。有些人使用 <=>
作为 NULL
-安全相等(即 NULL <=> NULL
计算为真)。在这些中,您可以使用:
where not Drive_Status <=> 'Success'
而在其他方面,您需要更加具体:
where Drive_Status <> 'Success' or Drive_Status is null
我正在尝试提取列“Drive_Status”不等于“成功”的所有数据,如有任何帮助,将不胜感激。
SELECT * FROM [Main$] WHERE (Drive_Status <> 'Success')
上述语句的问题是“Drive_Status”列中为 Null 或标记为“错误”的数据未返回。
我使用的数据库是Excel数据库
NULL
is not a value 所以你不能使用 <>
来检查 NULL
.
改为尝试以下操作:
SELECT * FROM [Main$] WHERE Drive_Status <> 'Success' OR Drive_Status IS NULL
如果您想将 NULL
值包含为“不等于”,那么您需要一个 NULL
安全运算符。否则,<>
returns NULL
在 WHERE
子句中被视为“假”。
您还没有指定您的数据库,但标准 SQL 提供了一个:
where Drive_Status is distinct from 'Success'
如果 Drive_Status
是 NULL
,那么这个 returns TRUE
而不是 NULL
.
并不是所有的数据库都支持这个。有些人使用 <=>
作为 NULL
-安全相等(即 NULL <=> NULL
计算为真)。在这些中,您可以使用:
where not Drive_Status <=> 'Success'
而在其他方面,您需要更加具体:
where Drive_Status <> 'Success' or Drive_Status is null