WHERE子句不使用空值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WHERE子句不使用空值相关的知识,希望对你有一定的参考价值。

在下面的代码中,我尝试查询Excel文件中的特定字段“用户名”哪里有空格(= '')。但没有任何东西返回到数据适配器。 WHERE子句将返回数据,例如,如果我指定NOT LIKE 'thistext%',但同样省略空格。有没有办法更好地编写条款?

我已经读过,如果字段为空并且需要转换为DB NULL(或填充值),则不确定如何执行此操作。

$connection.ConnectionString = $connectstring
$connection.Open()
$objOleDbCommand.Connection = $connection
$objOleDbCommand.CommandText = "SELECT * FROM [$strSheetName] WHERE [Username] = ''"

$objOleDbAdapter.SelectCommand = $objOleDbCommand

$objOleDbAdapter.Fill($objDataTable)

$objDataTable | Export-Csv "C:outputMyData_$dateandtime.csv" -NoTypeInformation

$connection.Close()
答案

试试这个来覆盖空白和空值。

Select * from [$strSheetName] where   [Username] = '' OR [USERNAME] IS NULL

请注意,这本身并不是技术上的PowerShell问题,您可能会遇到与其他电子表格和数据库相同的问题。

以上是关于WHERE子句不使用空值的主要内容,如果未能解决你的问题,请参考以下文章

EF 核心 6 选择空值,尽管 where 子句要求不为空

用于返回结果集的 where 子句中的 case 语句包含空值

Hive 查询使用“not column=value”where 子句删除空值

在 BigQuery 中,带有空值数组列的“where”子句导致问题

SQL学习04——过滤数据

MySQL必知必会---过滤数据