vba语法大全

ads

VBA 的 SQL 语法介绍

1. 基本语法

1.1 UNION 操作符

SELECT a, b FROM [tb1] UNION SELECT a, b FROM [tb2];

UNION 拼接两个表的数据,会去重;UNION ALL 拼接两个表的数据,不去重。

1.2 填充字符串并指定表头

SELECT a, 'b' AS bTitle FROM [tab1];

这种情况下会填充一整列的字符串 b,并且表头是内部的名称,需要 'b' AS bTitle,才能有自己的标题。

2. 查询操作

2.1 使用 IN 和 NOT IN 查询

SELECT * FROM [tb1] WHERE 投资方向 IN ('债券','股票') ORDER BY 金额 DESC;

查询投资分析字段中包含 债券 或 股票的行,然后按金额降序排列。

2.2 查询不为空的数据

SELECT * FROM [tb1] WHERE 投资方向 IS NOT NULL;

2.3 使用连接符 &

SELECT * FROM [tb1] WHERE 性别 & 班级 = '女一班';

3. 模糊匹配

3.1 通配符 LIKE

SELECT * FROM [table] WHERE column LIKE 'A%';

查询以 A 开头的字符。

4. 分组计算

4.1 聚合函数和分组

SELECT 部门, AVG(年龄) AS 平均年龄 FROM [员工] GROUP BY 部门 HAVING AVG(年龄) > 35;

5. 记录的判断

5.1 判断是否有记录

If rs.EOF And rs.BOF Then
    '指针既指向BOF开头,又指向EOF末尾,说明没有记录
End If

或者

If rs.RecordCount <= 0 Then
    '表示没有记录
End If

6. 多表查询(Where 等值连接)

6.1 查询所有学生的姓名、性别、选修的课程名称及成绩

'从三个表里查询数据,通过学号与课程代码来匹配到对应的数据
sql = "SELECT 姓名, 性别, 课程名称, 成绩 FROM 学生, 课程, 成绩 WHERE 学生.学号 = 成绩.学号 AND 课程.课程代码 = 成绩.课程代码"

6.2 查询所有课程的平均成绩,结果包含课程名称、平均成绩 2 个字段

sql = "SELECT 课程名称, AVG(成绩) AS 平均成绩 FROM 课程, 成绩 WHERE 课程.课程代码 = 成绩.课程代码 GROUP BY 课程名称"

7. 连接查询

7.1 INNER JOIN 内连接

SELECT DISTINCT t1.编号, t1.姓名, t1.身份证号, t1.部门
FROM 员工 t1
INNER JOIN 员工 t2 ON t1.姓名 = t2.姓名
WHERE tl.编号 <> t2.编号
ORDER BY t1.姓名

7.2 左连接 LEFT JOIN

SELECT 姓名, 性别, 职称, 系号, 系名
FROM 导师
LEFT JOIN 院系 ON 导师.院系编号 = 院系.系号

7.3 右连接 RIGHT JOIN

SELECT 姓名, 性别, 职称, 系号, 系名
FROM 导师
RIGHT JOIN 院系 ON 导师.院系编号 = 院系.系号

8. SQL 语句的执行顺序

FROM --> WHERE --> GROUP --> HAVING --> SELECT

SQL 语句的执行顺序是先从表中筛选数据,再进行条件筛选,再进行分组,再进行分组条件筛选,最后选择需要的字段。

不知道VBA中如何执行sql的,可以看我往期关于SQL的文章。

最后编辑于:2024/1/21 拔丝英语网

admin-avatar

英语作文代写、国外视频下载

高质量学习资料分享

admin@buzzrecipe.com