首页 > Excel > Excel数据透视表教程:MS Query语法详解

Excel数据透视表教程:MS Query语法详解

2009年6月22日

MS Query基础语法讲解:

一、单表查询
单表查询是指仅涉及一个表的查询

1、查询指定列
例1、查询材料进货明细表中的定额名称及规格

SELECT 定额名称,规格 FROM [材料进货明细表$]

注意:在excel中,一个工作表的表示是这样的:[工作表名称$]

select的意思是:查询

上面那一句SQL语句的意思就是:从表材料进货明细表中取出定额名称及规格的值

例2、查询材料进货明细表的详细记录

SELECT * FROM [材料进货明细表$]
等价于:
SELECT 序号, 定额名称,规格,日期,单位,数量 FROM [材料进货明细表$]
注意:*的用法

2、查询经过计算的值

例3、查询材料进货明细表的定额名称、规格、年份及数量

SELECT 定额名称,规格,year(日期) as 年份,数量 FROM [材料进货明细表$]

注意:里面的年份已经通过了计算的了,成为一个新的变量。

加多一列自定义的列A厂:

SELECT “A厂”  ,定额名称,规格,year(日期) as 年份,数量 FROM [材料进货明细表$]

SELECT “A厂” as 工厂 ,定额名称,规格,year(日期) as 年份,数量 FROM [材料进货明细表$]
比较一下上面两句SQL语句的区别,没有as 工厂与有as 工厂的区别

二、选择表中若干元组
1、消除取重复的行
 
例4、查询材料进货明细表的定额名称

SELECT 定额名称 FROM [材料进货明细表$]
该查询结果会包含很多重复的行。消除重复行的话,必须指定关键词
distinct

SELECT distinct 定额名称 FROM [材料进货明细表$]

2、查询满足条件的元组

例5、查询材料进货明细表中单位为“套”的所有记录

SELECT * FROM [材料进货明细表$] where 单位= ‘套’

本句语句中,要学会where的用法:
要查询满足指定条件的元组,可以通过where子句实现。where子句查询条件是:
比较: =,>,<,>=,<=,!=,<>,!>,!<;not +上述比较运算符
确定范围: between and ,not between and
确定集合:in,not in
字符匹配:like,not like
空值:is null,is not null
多重条件:and,or,not

例6、查询材料进货明细表中数量在50—100之间的所有记录

SELECT * FROM [材料进货明细表$] where 数量 between 50 and 100

如果是不在50-100之间的话,直接改成:
SELECT * FROM [材料进货明细表$] where 数量 not between 50 and 100

例7、查询材料进货明细表中单位为“只”或“支”的所有记录

SELECT * FROM [材料进货明细表$] where 单位 in(‘只’,'支’)

3、字符匹配

可以用like来实现,通配符%和_
a、%代表任意长度的字符串,如a%b表示以a开头,以b结尾的任意的字符串
b、_代表任意单个字符

例8、查询材料进货明细表中定额名称以“天津”开头的所有记录
SELECT * FROM [材料进货明细表$] where 定额名称 like ‘天津%’

例9、查询材料进货明细表中定额名称以“天津”开头且字符为4个的所有记录
SELECT * FROM [材料进货明细表$] where 定额名称 like ‘天津__’

例10、查询材料进货明细表中定额名称不以“天津”开头的所有记录
SELECT * FROM [材料进货明细表$] where 定额名称 not like ‘天津%’

4、涉及空值的查询
主要是以:null出现
例11、查询材料进货明细表中规格为空的的所有记录
SELECT * FROM [材料进货明细表$] where 规格 is null

5、多条件查询
例12、查询材料进货明细表中定额名称为“天津三通”的并且数量大于30的所有记录
SELECT * FROM [材料进货明细表$] where 定额名称 = ‘天津三通’ and 数量>30

三、order by 子句
desc(降序)、asc(升序)
例13、查询材料进货明细表中数量大于30的所有记录,并且要按照数量来降序排列。
SELECT * FROM [材料进货明细表$] where  数量>30  order by 数量 desc
四、聚集函数
count(distinct/all 列名):统计元组个数
sum:求和
avg:求平均值
max:最大值
min:最小值
例14、查询材料进货明细表中天津大小头的最大数量。
SELECT max(数量) FROM [材料进货明细表$] where 定额名称 = ‘天津大小头’
或:SELECT max(数量) as 最大数量 FROM [材料进货明细表$] where 定额名称 = ‘天津大小头’

声明:本站遵循 署名-非商业性使用-相同方式共享 3.0 共享协议. 转载请注明转自 执子之手与子偕老
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.