表 spot
id为自增 主键
spotid不唯一(一个SPOTID 可能会对应多个spotname)
我这里用ID做唯一标识
id   spotid  spotname
.....
.....出现这种情况:
  不同的id,不同的spotid,拥有同样的spotname  我要的结果:
去掉spotname相同的项
SQL

解决方案 »

  1.   

    假设你的数据:id   spotid  spotname
    1    1       a
    2    2       a
    3    4       a那你希望的结果是如何?
      

  2.   

    去掉第2、3 条记录id  spotid  spotname 
    1    1       a
    2    2       a
    3    4       a
    4    11      b
    5    12      b
    6    14      btoid  spotid  spotname 
    1    1       a
    4    11      b
      

  3.   

    ----------------------------------------------------------------
    -- Author  :DBA_Huangzj(發糞塗牆)
    -- Date    :2013-05-15 15:27:42
    -- Version:
    --      Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) 
    -- Jun 17 2011 00:54:03 
    -- Copyright (c) Microsoft Corporation
    -- Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1, v.721)
    --
    ----------------------------------------------------------------
    --> 测试数据:[huang]
    if object_id('[huang]') is not null drop table [huang]
    go 
    create table [huang]([id] int,[spotid] int,[spotname] varchar(1))
    insert [huang]
    select 1,1,'a' union all
    select 2,2,'a' union all
    select 3,4,'a' union all
    select 4,11,'b' union all
    select 5,12,'b' union all
    select 6,14,'b'
    --------------开始查询--------------------------
    SELECT *
    FROM [huang] a
    WHERE EXISTS (SELECT 1 FROM (
    select MIN(id)id,[spotname]
    from [huang]
    GROUP BY [spotname])b WHERE a.id=b.id AND a.[spotname]=b.[spotname])
    ----------------结果----------------------------
    /* 
    id          spotid      spotname
    ----------- ----------- --------
    1           1           a
    4           11          b
    */
      

  4.   

    select * from tb a where not exists(select 1 from tb b where a.spotname=b.spotname and a.id>b.id)