暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

梧桐数据库(WuTongDB):DML之DISTINCT

原创 鲁鲁 2024-06-20
627


在处理完选择列表之后,生成的表可以选择删除重复行。直接在SELECT 后面写上DISTINCT关键字即可:

SELECT DISTINCT select_list ...

如果不用DISTINCT你可以用ALL声明保留所有行的缺省行为

显然,如果两行里至少有一个列值不同,那么我们认为这两行是独立的。 NULL 在这里被认为是相同的。

另外,我们还可以用表达式来判断什么样的行可以认为是独立的:

SELECT DISTINCT ON (expression [, expression ...]) select_list ...

这里的expression是一个值表达式, 它为每一行计算。如果一组行计算出的该表达式的值都相同,那么就认为这些行是重复的, 并只输出第一行。请注意这里的”第一行”是不可预料的, 除非你在足够多的列上对该查询进行了排序,保证到达DISTINCT 过滤器时行的顺序是唯一的(DISTINCT ON将在ORDER BY排序之后处理)。

DISTINCT ON子句不是 SQL 标准的一部分,有时候被认为是一个糟糕的风格, 因为它的结果是不可判定的。如果用有可选的GROUP BY和在FROM 中的子查询可以达到目的,那么我们可以避免使用这个构造,但是通常它是更方便的方法。

最后修改时间:2024-07-28 13:09:35
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论