我想删除重复行SELECT查询Postgres里消除重复行Postgres里
返回我有以下查询
SELECT DISTINCT name FROM names ORDER BY name
但这并不会自动消除重复行?
我想删除重复行SELECT查询Postgres里消除重复行Postgres里
返回我有以下查询
SELECT DISTINCT name FROM names ORDER BY name
但这并不会自动消除重复行?
PostgreSQL是大小写敏感的,这可能是一个问题在这里 DISTINCT ON可用于区分大小写的搜索(7.4测试)
SELECT DISTINCT ON (upper(name)) name FROM names ORDER BY upper(name);
也许一些具有相同的外观,但是,不同的字符(像拉丁'a'/ CYRILLIC'')
不要忘了也添加trim()。否则'记录'和'记录'将被视为单独的实体。这结束了在第一个伤害了我,我有我的查询更新到:
SELECT DISTINCT ON (upper(trim(name))) name FROM names ORDER BY upper(trim(name));
在Postgres的9.2和更大的你现在可以转换列到CITEXT类型,甚至作出这样的,所以你不必列在选择上施放。
SELECT DISTINCT name::citext FROM names ORDER BY name::citext
我使用的是古老的PostgreSQL 7.3.4版本 – Roland 2009-07-20 08:30:14
的[从表中删除重复]可能重复(http://stackoverflow.com/questions/243567/remove-duplicate-from-a-table ) – Flimzy 2014-03-04 20:32:29