恕我愚笨,group by能解决吗?原闻其详

解决方案 »

  1.   

    不好意思,弄错了
    你参照一下,也许可解决问题
    select distinct tablename.* from tablename;
      

  2.   

    没有办法的。DISTINCT 和 GROUP BY 一样,不能用索引。一定会慢的,没有办法。
      

  3.   

    真的没有吗?
    我还有一点可能没说清楚
    我有一个id值是可以作为distinct的标准的,就是说id相同,其他都相同,但是第一个字段不同导致有些重复数据(指除掉第一个字段以外的重复)
      

  4.   

    试一下
    select * from tablename where rowid=(select max(rowid) from tablename a where tablename.id=a.id);   
      

  5.   

    to feng_zi
    这个怎么可以呢?
      

  6.   

    我写的是oracle里的,你的库是?
      

  7.   

    sql server 2000, sorry, 我没说清楚
      

  8.   

    不好意思,对sql server不熟,sql server好象没有rowid,有外连接吗?
    你不是有一个字段aaa不重复吗?
    select * from tablename where aaa=(select max(aaa) from tablename a where tablename.id=a.id);
    可不可以呢?  
      

  9.   

    应该不可以,这样只能选出aaa是固定内容的那些纪录,不是我的要求(所有不重复的纪录)
      

  10.   

    我想:
    select * from viewname where id [not] in (...) 这种形式是不是能解决?
      

  11.   

    select * from table where aaa in (select max(aaa) from table group by id)
      

  12.   

    select tablename.* from table group by tablename.* having count(任一字段)>1
      

  13.   

    通过ID分了组,只取其中一条,怎么可能还有重复的ID,你能不能把你的数据也贴出来,我试试,我觉得不太可能出现这种问题。
      

  14.   

    to: KnowLittle(人傻不要紧,只要肯学习。)
    你说的id相同,其它都相同。包括(aaa, col1,col2......col30)中的aaa吗?
    若其它指的是col1,col2......col30则可以这样:
    select max(aaa),col1,...... from viewname group by id
    或者
    select * from viewname where aaa in (select max(aaa) from viewname group by id)
      

  15.   

    蓝兄,我怎么贴我的数据呢?
    to:weixxxp
    你的方法和蓝兄一样啊,好像不行。是不是我没有说清楚,再说一遍:
    我的视图里面有若干个字段,除了第一个字段aaa以外,其他的字段全部由id决定,我现在想取出id不重复的所有数据,也就是第一个字段的内容我不要了,(或者说我不关心了),最简单的办法就是
    select distinct col1,col2......col30 from v_list但是各位给出的这个办法运行的结果是:
    比select * from v_list 少一些,但是仍然有重复的id出现,这是因为我的aaa也有重复的情况,(aaa相同但是id不同)
      

  16.   

    哎呀,这么多高手怎么没有一个劝贴主用最简单的方法呢!只好我劝了,你既然知道
    select distinct col1,col2......col30 from v_list
    最简单,这个语句效率也不错,不就是在编程时多输入几个字母吗?不用找了,找到的效率也没有这句高。
    哈哈,听我的没错。
      

  17.   

    to:KnowLittle(人傻不要紧,只要肯学习。) 
       虽然你比我多两个三角,还是觉得你这个问题问得傻,建议你改名:“人不学习不要紧,只要不傻。”
      

  18.   

    ***我有一个试图,里面除了第一个字段aaa,其他很多重复纪录.****
    以上语句很容易让人误解,以为你的第一个字段没有重复,如果你的第一个字段也有重复,那我的语句是不行,但是你的视图中没有一个能唯一标识一行记录的字段吗?如果没有,当然也有其它办法来实现,但还不如distinct简单,而且sqlserver在处理这类distinct问题时也是做过优化,效率不会太低。
      

  19.   

    to: Rewiah, 难道你不知道三角越多表示越傻吗?五角星就表示傻到家了,赫赫
    to 蓝兄,原来真的是我没说清,因为我的试图是一个权限控制试图,第一个字段是username,后面则是客户信息,表示什么人能看到什么信息。不过还是谢谢你,不过我还是想知道“当然也有其它办法来实现”的办法是什么。
      

  20.   

    bstrRet->vt = VT_BSTR;
    bstrRet->bstrVal = L"Err_Exception";
    直接这样写可以吗
      

  21.   

    to:KnowLittle(人傻不要紧,只要肯学习。) 
    你完了,你把五角星的都得罪了,以后你问问题只能由我们这些三角的来答了,呵呵!
      

  22.   

    select aaa,mid(bbb),mid(ccc).... from table group by bbb
      

  23.   

    看我的:
    create table tab1_bak as select * from tab1;
    alter table tab1_bak drop column aaa;
    select distinct * from tab1_bak;这个结果满足你的要求了吧?
      

  24.   

    赫赫,好久没来了,都忘了这个铁子没结。
    白兄果然是与众不同
    to; Rewiah
    兰兄岂会不明白“大愚即大智,大智即大愚”的禅机呢?