数据库表ID     type01     AA
02     BB
03     AA
…………如何选取其中type相同而ID不同的记录?

解决方案 »

  1.   

    select min(id) id,type from tablename group by type
      

  2.   

    declare @T table(ID varchar(10),type varchar(10))
    insert into @T select '01','AA'
    union all select '02','BB'
    union all select '03','AA'select * from @t a where exists(select 1 from @t where type=a.type and ID<>a.ID)??
      

  3.   

    select * from 表名 a where exists(select 1 from 表名 where type=a.type and ID<>a.ID)
      

  4.   

    select * from tablename a 
    where exists(
    select 1 from tablename 
    where type=a.type 
    and ID<>a.ID
    )
      

  5.   

    ID不同是随便取吗?用min或者MAX
      

  6.   

    谢谢了! 诸位
    SELECT [ID] , TYPE FROM TT A WHERE EXISTS (SELECT 1 FROM TT WHERE TYPE = A.TYPE AND [ID]<>A.[ID])SELECT DISTINCT A.[ID] , A.TYPE FROM TT A INNER JOIN TT B ON A.[ID] <> B.[ID] AND A.TYPE = B.TYPESELECT DISTINCT A.[ID] ,B.TYPE FROM TT A, TT B WHERE A.[ID] <> B.[ID] AND A.TYPE = B.TYPE
      

  7.   

    不知道哪位大哥有关于SQL的执行机制的资料,可否发一份给小弟
    [email protected]
    先谢了
      

  8.   

    to:NNPeople(春春)SELECT [ID] , TYPE FROM TT A WHERE EXISTS (SELECT 1 FROM TT WHERE TYPE = A.TYPE AND [ID]<>A.[ID])
    这种不行~(第一句)
    比如
    ID type
    01 AA
    01 AA
    选完之后都会在结果之中,这种写法不能去掉相同的结果,后面两条是可以的