SQL DISTINCT去除查询结果重复行

关于单个表的SELECT查询,还有一个非常实用的操作,就是从结果中去掉重复的行。使用的关键字是DISTINCT。比如我们想要看下heros表中关于攻击范围的取值都有哪些:

SELECT DISTINCT attack_range FROM heros

这是运行结果(2条记录),这样我们就能直观地看到攻击范围其实只有两个值,那就是近战和远程。

SQL DISTINCT去除重复行
如果我们带上英雄名称,会是怎样呢:

SELECT DISTINCT attack_range, name FROM heros

运行结果(69条记录):

SQL DISTINCT去除重复行
这里有两点需要注意:

  1. DISTINCT需要放到所有列名的前面,如果写成SELECT name, DISTINCT attack_range FROM heros会报错。
  2. DISTINCT其实是对后面所有列名的组合进行去重,你能看到最后的结果是69条,因为这69个英雄名称不同,都有攻击范围(attack_range)这个属性值。如果你想要看都有哪些不同的攻击范围(attack_range),只需要写DISTINCT attack_range即可,后面不需要再加其他的列名了。
赞(1)
未经允许不得转载:极客笔记 » SQL DISTINCT去除查询结果重复行
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址