例如某ADODataSet里有如下记录
Name Age School
Andy 16 ABC
Bill 15 ABC
Cindy 16 BBB
Danny 16 CCC
Eric 16 DDD
Fox 16 EEE上面School字段里,我们看到记录集里ABC学校的学生有2个,我只需要显示其中1个就可以了,请问如何做呢?ABC是由数据库动态生成的,事先是未知的。
Name Age School
Andy 16 ABC
Bill 15 ABC
Cindy 16 BBB
Danny 16 CCC
Eric 16 DDD
Fox 16 EEE上面School字段里,我们看到记录集里ABC学校的学生有2个,我只需要显示其中1个就可以了,请问如何做呢?ABC是由数据库动态生成的,事先是未知的。
DISTINCT 关键字可从 SELECT 语句的结果中除去重复的行。如果没有指定 DISTINCT,那么将返回所有行,包括重复的行。例如,如果在 titleauthor 中选择所有作者 ID 时未使用 DISTINCT,那么将会返回下列行(其中包括一些重复的行):USE pubs
SELECT au_id
FROM titleauthor下面是结果集:au_id
-----------
172-32-1176
213-46-8915
213-46-8915
238-95-7766
267-41-2394
267-41-2394
274-80-9391
409-56-7008
427-17-2319
472-27-2349
486-29-1786
486-29-1786
648-92-1872
672-71-3249
712-45-1867
722-51-5454
724-80-9391
724-80-9391
756-30-7391
807-91-6654
846-92-7186
899-46-2035
899-46-2035
998-72-3567
998-72-3567 (25 row(s) affected)而使用了 DISTINCT 后,就能够除去重复项,而只查看唯一的作者 ID:USE pubs
SELECT DISTINCT au_id
FROM titleauthor下面是结果集:au_id
-----------
172-32-1176
213-46-8915
238-95-7766
267-41-2394
274-80-9391
409-56-7008
427-17-2319
472-27-2349
486-29-1786
648-92-1872
672-71-3249
712-45-1867
722-51-5454
724-80-9391
756-30-7391
807-91-6654
846-92-7186
899-46-2035
998-72-3567 (19 row(s) affected)
Andy 16 ABC
Bill 15 ABC
Cindy 16 BBB
Danny 16 CCC
Eric 16 DDD
Fox 16 EEE我不单要School,而且包括Name, Age字段我都要,请问如何解决呢?
DISTINCT只对完全重复的记录才合适,GROUP BY也一样。我的记录只有一个字段会重复,其他字段不重复的。