在SQL查询中为2列选择Distinct

Mat*_*att 13 sql sql-server distinct

如果我有一张桌子如

1 bob
1 ray
1 bob
1 ray
2 joe
2 joe
Run Code Online (Sandbox Code Playgroud)

我想基于两列选择不同的,以便我得到

1 bob
1 ray
2 joe
Run Code Online (Sandbox Code Playgroud)

我该如何说出我的查询?是连接列并将它们包装在不同的函数运算符周围的唯一方法吗?

Den*_*eev 33

select distinct id, name from [table]
Run Code Online (Sandbox Code Playgroud)

要么

select id, name from [table] group by id, name
Run Code Online (Sandbox Code Playgroud)

  • 给我们留一些,嗯? (5认同)
  • 和@OMG Ponies:“你永远不会得到足够的东西,你不需要让你快乐。” 〜埃里克·霍弗:-) (2认同)

Pab*_*ruz 5

你可以这样做:

select distinct col1, col2 from your_table;
Run Code Online (Sandbox Code Playgroud)

这正是distinct运算符的用途:删除重复的结果行.

请记住,distinct通常是一个相当昂贵的操作,因为在处理查询之后,DB服务器可能会执行排序操作以删除重复项.