一天,突然发现我写的工资演变查询程序得到的结果不尽如人意,如下图:
点击这里查看源 程序
在程序中,我已经用了Distinct来屏蔽掉重复值了,代码如下:
For Each myquery In mydb.QueryDefs
If myquery.Name = "拼音查询" Then mydb.QueryDefs.Delete "拼音查询"
Next
sql = "select distinct 姓名, 拼音代码 from 工资变动数据库 where 拼音代码like " &chaxun
Set myquery = mydb.CreateQueryDef("拼音查询", sql)
Set rs =myquery.OpenRecordset
Do While Notrs.EOF
ListBox1.AddItem rs.Fields("姓名")
rs.MoveNext
Loop
上网百度一下,终于得到了合理的解释。以下摘自度娘
请问sql语句“SelectDistinct”是什么意思?可不可以讲一下它的用法
1.Select Distinct 货品编码,数量 From 订单信息
2.Select Distinct 货品编码 From 订单信息
第一句和第二句有什么分别,请高手说说Distinct用法
提问者采纳
2010-11-19 21:49
Distinct的是作用是过滤结果集中的重复值。
比如订单信息表中有3条信息:
货品编码 数量
00110
00120
00210
如果用第一个SQL语句查询的话,会返回
货品编码 数量
00110
00120
00210
而用第二个则返回
货品编码
001
002
所以如果仅仅需要知道订单信息中的所有货品编码就用第二个SQL语句。
其他4条回答
2010-11-19 21:54田响建站之家|七级
用一条语句查询得到不重复的所有数据,那就必须使用distinct去掉多余的重复记录。
第一句和第二句分别:
第一句同时作用了两个字段,也就是必须得货品编码与数量都相同的才会被排除;
第二句只作用了1个字段,即货品编码即可.
评论|0
2010-11-19 21:48jlein|四级
1、Select Distinct 是对你的查询结果进行筛选,去掉重复的结果,比如说你的
货品编码,数量 有两个结果是一样的,那么你查询的时候只会显示一个。
2、第一句和第二句区别在于,第一句,如果有记录货品编码,数量这两个字段是不同的进行晒选,第二句只会对货品编码这一个字段是不同的进行筛选。
评论|1
2010-11-20 09:17傻abc123|六级
Select Distinct的意思是:
仅仅列出不同(distinct)的值。
关键词 DISTINCT 用于返回唯一不同的值。
所以把
sql = "select distinct 姓名, 拼音代码from 工资变动数据库 where 拼音代码 like " & chaxun
中的“拼音代码”去掉就可以了。
即:sql = "select distinct 姓名 from工资变动数据库 where 拼音代码 like " & chaxun
结果如图: