要找出不同的Name并依照不同的Name找出该笔数据
SELECT * FROM Item Where Name in(SELECT DISTINCT Name FROM Item)
这样写错在那里或怎么样可以达成

解决方案 »

  1.   

    有没有标识列!select *
    from Item t
    where id = (select max(id) from Item where name = t.name)
      

  2.   

    select * from 
    (select no=row_number() over(partition by name order by getdate()),* from Item) t
    where no=1
      

  3.   


    --写一个不经常用的select
      a.*
    from
      item a join item b
    on
      a.name=b.name
    group by
      --这里写ITEM的全部列
    having 
       a.id=max(b.id)
      

  4.   

    Name|A|B|C
    x|y|z|1
    x|y|z|1
    x|y|z|1 <--找出xyz1输出一笔
    m|n|r|3
    m|n|r|3 <--找出mnr3输出一笔
    i|o|u|8 <--找出iou8输出一笔
    p|4|r|s
    p|4|r|s
    p|4|r|s
    p|4|r|s <--找出p4rs输出一笔想要获取:
    x|y|z|1
    m|n|r|3
    i|o|u|8
    p|4|r|s
      

  5.   

    都相同麼?select distinct * from table1
      

  6.   

    列沒有大小關聯時需要生成一個偽列序號
    use Tempdb
    go
    --> --> 
     
    declare @T table([Name] nvarchar(1),[A] nvarchar(1),[B] nvarchar(1),[C] nvarchar(1))
    Insert @T
    select N'x',N'y',N'z',N'1' union all
    select N'x',N'y',N'z',N'1' union all
    select N'x',N'y',N'z',N'1' union all
    select N'm',N'n',N'r',N'3' union all
    select N'm',N'n',N'r',N'3' union all
    select N'i',N'o',N'u',N'8' union all
    select N'p',N'4',N'r',N's' union all
    select N'p',N'4',N'r',N's' union all
    select N'p',N'4',N'r',N's' union all
    select N'p',N'4',N'r',N's'
     
    ;WITH a
    AS
    (Select * ,ROW_NUMBER()OVER(ORDER BY (SELECT 1)) AS row from @T)SELECT [Name],A,B,C
     FROM a AS b WHERE NOT EXISTS(SELECT 1 FROM a WHERE Name=b.Name AND row>b.row)
     
     /*
     Name A B C
    x y z 1
    m n r 3
    i o u 8
    p 4 r s
    */
      

  7.   

    ---不相同记录
    select distinct  name from tb
    order by name 
      

  8.   


    根据楼主的数据 直接distinct就OK了