WHERE子句不使用空值

时间:2017-12-30 16:34:16

标签: sql powershell null oledb

在下面的代码中,我尝试查询特定字段“用户名”的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:\output\MyData_$dateandtime.csv" -NoTypeInformation

$connection.Close()

1 个答案:

答案 0 :(得分:2)

尝试使用此选项来覆盖空格和空值。

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

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