HI,大家好,我是星光。
上期咱们聊了在SQL中如何处理排序的问题,这期来聊条件筛选。
在第一期的时候,咱们说SQL是声明式语言,当时还举了个小例子,不知道您是否还有印象:
那个栗子中的SQL代码我们使用了where子句。它定义了筛选条件:成绩>=80,从而对FROM子句返回的结果集进行筛选,将不符合条件的剔除。
事实上,where子句的筛选条件可以是简单的单条件(如上述示例),也可以是复杂的多条件,可以是精确匹配,也可以搭配通配符等执行模糊匹配。
它的语法格式如下▼
SELECT 字段名
FROM 表名
WHERE 筛选条件
如下图所示,是一份名为学生表的Excel工作表,A列是班级,B列是姓名,C-E列分别是性别、年龄、爱好。
💡1.单条件查询
SELECT 班级,
姓名
FROM [学生表$]
WHERE 班级='插班生'
SELECT 班级,
姓名
FROM [学生表$]
WHERE 年龄>=14
这个问题我们之前有解释过,这儿再说一下。在OLE DB法使用的SQL语句里,单引号和双引号都可以。只是在VBA中,通常SQL语句本身就是作为字符串存在的,外围已经存在了一对双引号,因此SQL语句内一般就使用单引号。
没有广告的推文是不真诚的▼
💡多条件筛选
SELECT 班级,
姓名,
年龄
FROM [学生表$]
WHERE 班级='插班生'
AND 年龄>=12
然后再说一下“或”关系的多条件筛选,只要满足条件中的任意一条即符合筛选条件。
在SQL中,这类问题一般使用OR运算符处理。
SELECT 班级,
姓名,
年龄
FROM [学生表$]
WHERE 班级='插班生'
OR 年龄>=12
Text expression IN (First value,……,last value)
SELECT 班级,
姓名,
爱好
FROM [学生表$]
WHERE 姓名 IN('看见星光','老祝','美女空','大红花')
SELECT 班级,
姓名,
年龄
FROM [学生表$]
WHERE 年龄
BETWEEN 13
AND 16
SELECT 班级,
姓名,
年龄
FROM [学生表$]
WHERE 年龄 NOT
BETWEEN 13
AND 16
💡模糊匹配查询
嘿!这个咱们下期再聊吧……
嗯,官方术语是:欲知后事如何,且听下回分解……
⏩需要系统学习Excel却找不到优质教程?学习Excel的过程中遇到疑难问题,却找不到人及时作出解答?
加入我的付费社群,学习+训练+答疑,与6000+在线会员一起,同微软最有价值专家MVP同行,全面精进Excel之道
🚂>>~
加入我的付费会员,全面学习Excel
透视表 函数 图表 VBA PQ想学啥学啥
👀