例如表a
假如有字段b 记录10条记录
    aaa
    bbb
    aaa
    ccc
    ddd
    aaa
    ddd
    aaa
    aaa
    ddd
---------------
10条记录
能否通过一个sql语句取出
--------
    aaa
    aaa
    aaa
    aaa
    aaa
    ddd
    ddd
    ddd
-----------
8条记录
并且以其他字段作为条件

解决方案 »

  1.   

    ........................order by b
      

  2.   

    假如 表1有5个字段
    a  b  c  d  e
    --------------
    1  ..
    2  ..
    3  ..
    1  ..
    3  ..
    ---------------
    我想获取其中有a字段中重复的数据
    a  b  c  d  e
    --------------
    1  ..
    3  ..
    1  ..
    3  ..
    ---------------
      

  3.   

    select 字段列表
    from 表名
    group by 字段列表
    having count(1) > 1
      

  4.   

    select b from a group by b having count(*) >1
      

  5.   

    但如果group by b,除了b 之外,还包括其他条件该怎么办?
      

  6.   

    如果如你上上一个说法,可以用
    select top ..... order by
    如果是上面的:我想那就要麻烦点了,如果只是奇偶的话,你可以构造一个的。不知道试不是这样
      

  7.   

    TO: 但如果group by b,除了b 之外,还包括其他条件该怎么办?如下:
    group by b,c.......
      

  8.   

    create table #t1(a int,b varchar(3))
    insert into #t1 values(1,'aaa')
    insert into #t1 values(2,'aaa')
    insert into #t1 values(3,'aaa')
    insert into #t1 values(4,'aaa')
    insert into #t1 values(5,'bbb')
    insert into #t1 values(6,'bbb')
    insert into #t1 values(7,'bbb')
    insert into #t1 values(8,'ccc')
    insert into #t1 values(9,'ddd')
    select #t1.a,b.b from (select b from #t1 group by b having count(*)>1) b left join #t1 on b.b=#t1
      

  9.   

    select #t1.a,b.b from (select b from #t1 group by b having count(*)>1) b left join #t1 on b.b=#t1 where b.a<>1
      

  10.   

    create table #t2(a int ,b varchar(3),c varchar(3))
    insert into #t2 values(1,'aaa','abc')
    insert into #t2 values(2,'aaa','abc')
    insert into #t2 values(3,'aaa','abd')
    insert into #t2 values(4,'aaa','abd')
    insert into #t2 values(5,'aaa','abd')
    insert into #t2 values(6,'aaa','abe')
    insert into #t2 values(7,'aaa','abf')
    insert into #t2 values(8,'bbb','abc')
    insert into #t2 values(9,'bbb','abc')
    insert into #t2 values(10,'bbb','abd')
    insert into #t2 values(11,'bbb','abe')
    select #t2.a,b.b,b.c from (select  b,c from #t2 group by b,c having count(*)>1) b left join #t2 on b.b=#t2.b and b.c=#t2.c
      

  11.   

    用union,别的恐怕比较难,实现简单就用union all,