加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 选择DISTINCT,返回整行

发布时间:2020-12-12 06:26:59 所属栏目:MsSql教程 来源:网络整理
导读:我有一个10列的表. 我想返回Col006不同的所有行,但返回所有列… 我怎样才能做到这一点? 如果第6列显示如下: | Column 6 || item1 | | item1 | | item2 | | item1 | 我想返回两行,其中一个记录包含item1,另一个记录包含item2,以及所有其他列. 解决方法 在SQL
我有一个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()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读