条件表达式

大多数时候,我们并不需要直接输入条件表达式去筛选,但是下面的内容还是应该认真看看,特别是以后学习开发篇的时候,这些内容是很有用的:

示例一

筛选客户为CS03的行:

客户 = 'CS03'

注意字符要用单引号括起来。

示例二

筛选客户CS03订购产品PD05的行:

客户 = 'CS03' And 产品 = 'PD05'

示例三

筛选客户为CS01或者客户为CS03的行:

客户 = 'CS01' Or 客户 = 'CS03'

示例四

客户CS01或者CS03订购产品PD01的行:

(客户 = 'CS01' Or 客户 = 'CS03') And 产品 = 'PD01'

示例五

筛选产品为PD01且折扣大于等于0.05的行:

产品 = 'PD01' And 折扣 >= 0.05

示例六

筛选数量大于100且折扣等于0的行

数量 > 100 And 折扣 = 0

注意数字不能用单引号,不少人会在这个地方犯错误。

示例七

筛选雇员列没有输入内容的行:

雇员 Is Null

示例八

筛选雇员不为空的行

雇员 Is Not Null

示例九

筛选1999年2月1日的行:

[日期] = #2/1/1999#

注意日期用符号#括起来

示例十

筛选1999年3月份的订单

[日期] >= #3/1/1999# And [日期] <= #3/31/1999#

示例十一

筛选产品为PD01、PD02、PD03的行:

产品 In ('PD01','PD02','PD03')

或者

产品 = 'PD01' or 产品 = 'PD02' or 产品 = 'PD03'

显然这个时候,用In运算符要简洁很多。

记得数值型的列,值不要用单引号括起来,例如:

[订单号] In (1, 3, 4, 6, 7,12)

而日期型的列,值需要用符号#括起来,例如:

[日期] In (#7/2/2012#, #7/12/2012#, #8/30/2012#)

示例十二

筛选产品不是PD01、PD02、PD03的行:

产品 Not In ('PD01','PD02','PD03')

示例十三

我们知道表达式中的字符串用单引号括起来,如果字符串本身包括单引号,那么就用两个单引号表示一个,例如:

型号 = 'HA''28'

表示型号等于:HA'28,中间连续的两个单引号表示一个单引号。

示例十四

所有的表都有一个名为_Locked的列,用于保存行的锁定状态。
如果要筛选已经锁定的行,表达式为:

[_Locked] = True

如果要筛选未锁定的行,表达式却不能简单地设为:

[_Locked] = False

这是因为_Locked列中可能有空值,所以正确的表达式为:

[_Locked] = False Or [_Locked] Is Null

虽然我们用的是_Locked这样一个特殊的列作为例子,但是上面的知识适合任何逻辑列。

示例十五

*或%可以作为通配符,表示任意个数的字符,两者是等价的,可以相互替换。

例如:

姓名 Like '%赫%'

姓名 Like '赫%'

姓名 Like '%赫'

分别表示姓名中包括“赫”,姓名开头是“赫”(姓赫),姓名结尾是“赫”

可以在Like前面加上Not关键词,表示不类似的意思,例如:

姓名 Not Like '李%'

表示不是姓李的。

由于* 和 % 默认作为通配符,如果要将其作为比较内容的一部分,必须用方括号括起来,例如:

型号 Like 'A[*]%'

表示型号以“A*”开头。

通配符只能出现在字符串的首尾,不允许在字符串的中间出现,例如不允许 '中*部',也不允许 '中%部'。


本页地址:http://www.foxtable.com/webhelp/topics/1647.htm