表1
编号      名称
001        a
002        b
003        c
004        v
004        ad
005        v1
003        ad1
想查出的结果
编号      名称
001        a
002        b
003        c
004        v
005        v1
相同编号的记录只显示其中一条记录
请大家帮忙看看~~~~~~

解决方案 »

  1.   

    select * from 表1 a where not exists(select 1 from 表1 where 编号=a.编号 and 名称>a.名称)
      

  2.   

    Select 
    编号,
    Min(名称) As 名称
    From 表1 
    Group By 编号
      

  3.   

    OrSelect 
    编号,
    Max(名称) As 名称
    From 表1 
    Group By 编号
      

  4.   

    看看下面的执行结果,说不一定是你想要的.如果不是的话自己可以修改一点点就OK啦!CREATE TABLE TEL
    (
    ID INT IDENTITY(1,1) PRIMARY KEY,
    NAME VARCHAR(8) NULL,
    TEL VARCHAR(8) NULL,
    )
    GO
    INSERT INTO TEL
    SELECT 'W','1' UNION
    SELECT 'W','2'UNION
    SELECT 'W','3'UNION
    SELECT 'X','4'UNION
    SELECT 'X','5'UNION
    SELECT 'X','6'UNION
    SELECT 'Y','7'UNION
    SELECT 'Y','8'UNION
    SELECT '衣服','春装'UNION
    SELECT '衣服','冬装'UNION
    SELECT 'COLOR','RED' UNION
    SELECT 'COLOR','YELLOW' UNION
    SELECT 'COLOR','BLACK' UNION
    SELECT 'COLOR','GREEN' UNION
    SELECT 'COLOR','BLACK' UNION
    SELECT 'COLOR','CYAN'  
    GO
    CREATE TABLE TELNAME
    (
    NAME VARCHAR(8)  PRIMARY KEY,
    TEL VARCHAR(8000) NULL,
    )
    GO
    INSERT INTO TELNAME 
    (NAME)
    SELECT NAME FROM TEL GROUP BY NAME 
    GO
    CREATE FUNCTION V_TEL
    (
    @TNAME VARCHAR(8)  
    )
    RETURNS  VARCHAR(8000)
    BEGIN
    DECLARE @MESSAGE VARCHAR(8000)
    DECLARE CURTEL CURSOR
    READ_ONLY
    FOR SELECT TEL FROM TEL WHERE [NAME]=@TNAME
    SET @MESSAGE=''
    DECLARE @NAME VARCHAR(40)
    OPEN CURTEL
    FETCH NEXT FROM CURTEL INTO @NAME
    WHILE (@@FETCH_STATUS <> -1)
    BEGIN
    IF (@@FETCH_STATUS <> -2)
    BEGIN
    SET @MESSAGE=@MESSAGE + @NAME+','
    END
    FETCH NEXT FROM CURTEL INTO @NAME
    END
    CLOSE CURTEL
    DEALLOCATE CURTEL
    RETURN (LEFT(@MESSAGE,LEN(@MESSAGE)-1))
    END 
    GOUPDATE TELNAME
    SET TEL=(SELECT DBO.V_TEL([NAME]) )
    GO
    SELECT * FROM TEL
    SELECT * FROM TELNAMEDROP TABLE TEL 
    DROP TABLE TELNAME 
    DROP FUNCTION V_TEL
      

  5.   

    select * from 表1 a where not exists(select 1 from 表1 where 编号=a.编号 and 名称>a.名称)Select
    编号,
    Min(名称) As 名称
    From 表1
    Group By 编号Select
    编号,
    Max(名称) As 名称
    From 表1
    Group By 编号
      

  6.   

    鱼,min(名称)是什么意思?是group by中的头一条记录还是对名称里的char进行排序比较?
    楼主的要求好象是每个group中的头条记录啊?