sql – 选择DISTINCT,返回整行

前端之家收集整理的这篇文章主要介绍了sql – 选择DISTINCT,返回整行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个10列的表.
我想返回Col006不同的所有行,但返回所有列…

我怎样才能做到这一点?

如果第6列显示如下:

| Column 6 |
| item1    | 
| item1    | 
| item2    | 
| item1    |

我想返回两行,其中一个记录包含item1,另一个记录包含item2,以及所有其他列.

解决方法

sql Server 2005及更高版本中:
;WITH    q AS
        (
        SELECT  *,ROW_NUMBER() OVER (PARTITION BY col6 ORDER BY id) rn
        FROM    mytable
        )
SELECT  *
FROM    q
WHERE   rn = 1

sql Server 2000中,前提是您有一个主键列:

SELECT  mt.*
FROM    (
        SELECT  DISTINCT col6
        FROM    mytable
        ) mto
JOIN    mytable mt
ON      mt.id = 
        (
        SELECT  TOP 1 id
        FROM    mytable mti
        WHERE   mti.col6 = mto.col6
        -- ORDER BY
        --      id
        --  Uncomment the lines above if the order matters
        )

更新:

检查数据库版本和兼容级别:

SELECT  @@VERSION

SELECT  COMPATIBILITY_LEVEL
FROM    sys.databases
WHERE   name = DB_NAME()

猜你在找的MsSQL相关文章