by 清泉
24. 二月 2009 20:37
我们都知道,使用关键字distinct可以查询不重复的记录。
比如:
select distinct col1 from table1
select destinct * from table1
但是如果要查询列中的某一列(或几列)不重复的记录,那直接使用distinct就不能得到我们想要的结果了。
比如:
col1 col2
AA AB
AA BB
要是查询col1列不重复的记录下面这样就不能实现。
select distinct col1, col2 from table1
select destinct * from table1
select col2, distinct col1 from table1 这样却是不合法的。
不过下面这样却可以实现:
select col1, col2, count(distinct col1) from table1 group by col1
后面一列是多余的,我们不用理会。
这样就可以实现查询不重复的记录了。
不过还有更简单的方法,使用group by进行查寻:
select col1, col2 from table1 group by col1
这样也能实现
如果在查寻过程中出现“试图执行的查询中不包含作为合计函数一部分的特定表达式”的错误,
解决方法为:
前面select选择的字段,都要在后面的group by 中出现
group by 后面跟的各个字段,是按第一个字段为主关健字,后面是依次为二、三.....等.