【发布时间】:2019-02-22 16:16:58
【问题描述】:
我有一个查询,其中有几个文本字段,我在过滤条件中放置了<> "Power"。当我输入这个标准时,它也不会显示该字段为空白的记录。如果我将条件留空,它会显示所有记录,包括带有空白字段的记录。
如何让查询排除条件 Power 但仍显示该字段为空白的记录?
【问题讨论】:
我有一个查询,其中有几个文本字段,我在过滤条件中放置了<> "Power"。当我输入这个标准时,它也不会显示该字段为空白的记录。如果我将条件留空,它会显示所有记录,包括带有空白字段的记录。
如何让查询排除条件 Power 但仍显示该字段为空白的记录?
【问题讨论】:
尝试添加 OR IS NULL:
<> "Power" OR IS NULL
【讨论】:
SELECT *
FROM YourTable
WHERE 'T' = SWITCH(
your_col IS NULL, 'T',
your_col = ' ', 'T',
your_col <> 'Power', 'T'
);
【讨论】:
尝试像这样使用ANSI SQL函数COALESCE
SELECT *
FROM MyTable
WHERE COALESCE(MyColumn, '') <> 'Power'
【讨论】:
Nz 会在这里做,虽然原来的 COALESCE 可变数量的参数更强大。
空白字段可能意味着该字段为 Null 或包含零长度字符串 ("")。您可以通过将字段与另一个零长度字符串连接来测试其中任何一个条件。如果该组合的字符串长度为零,则您知道该字段必须是 Null 或零长度字符串。
SELECT *
FROM YourTable
WHERE
Your_column <> 'Power'
OR Len(Your_column & '') = 0;
【讨论】: