假如我有一个这样的数据库:ID  CODE TEXT
1   AAA  ...
2   BBB  ...
3   CCC  ...
4   DDD  ...
5   EEE  ...
6   EEE  ...
7   EEE  ...我想在CODE字段不重复前提下,读取所有的字段内容 并且返回出类似以下内容的情况ID  CODE TEXT
1   AAA  ...
2   BBB  ...
3   CCC  ...
4   DDD  ...
5   EEE  ...请问要怎么做?
似乎用DISTINCT只能返回一个字段的内容,没办法把所有字段都返回……

解决方案 »

  1.   

    试试同一个表UNION ALL,前后语句一样,中间用UNION ALL连接。
      

  2.   


    换个思路很简单,代码如下:
    SELECT * FROM WHERE ID in (SELECT ID FROM (SELECT DISTINCT CODE,ID FROM 你的表名)))
      

  3.   


    少了个表名:
    SELECT * FROM 你的表名 WHERE ID in (SELECT ID FROM (SELECT DISTINCT CODE,ID FROM 你的表名)))
      

  4.   

    楼上的办法好像不行,试了一下
    输出的时候CODE还是有重复的
      

  5.   

    你的需求是同组取第一个出现的,这并不需要 DISTINCT
    select * from tbl_name group by code
    即可若需求是同组取最后一个出现的,则
    select *, count(distinct code) from tbl_name group by code
      

  6.   

    楼上的办法我在access2003中使用sql语句试了一下,
    select * from tbl_name group by code
    提示不能将已选定‘*’的字段中组合。
    select *, count(distinct code) from tbl_name group by code
    提示语法错误(操作符丢失)在查询表达式count(distinct code)中请问是否是我的access版本太低了?