条件表达式
大多数时候,我们并不需要直接输入条件表达式去筛选,但是下面的内容还是应该认真看看,特别是以后学习开发篇的时候,这些内容是很有用的:
示例一
筛选客户为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*”开头。
通配符只能出现在字符串的首尾,不允许在字符串的中间出现,例如不允许 '中*部',也不允许 '中%部'。