SQL 找不到空白字段是否为 NULL 或



所以我有一个SSIS包,它使用表达式将某些文本替换为",然后将其加载到数据库中。

如果我在SSMS中的表中进行选择查询,例如;

SELECT * FROM xxx
WHERE Email IS NULL OR Email = ''

它没有返回任何结果,尽管我可以直观地看到有带有空白电子邮件字段的记录。

我也尝试过;

SELECT * FROM xxx
WHERE (LEN(ISNULL(Email,'')) = 0);

我的SSIS表达式;

LOWER(REPLACE([Email],"Â",""))

有什么解决方案吗?

EDIT-如下所述,我将字段强制转换为varbinary,它们的值为0xA0。

编辑2-对我有效的答案是哪里的电子邮件喜欢"%"+CHAR(160(+"%">

你能试着使用吗

WHERE EMail LIKE '%' + CHAR(160) + '%' 

160是";不间断空间";。

尝试:

SELECT * FROM xxx
WHERE Email IS NULL OR Email NOT LIKE REPLICATE('[A-Za-z0-9@.-_]', LEN(Email))

您可以使用len函数,如果为零,则电子邮件将包含一个空字符串,如果为空,则电子邮件为空
这将查找电子邮件为空、为null或具有不可打印字符的任何行

where len(email) = 0 or len(email) is null

最新更新