で重複行を排除、私は重複行を削除するにはPostgresのPostgresの
でSELECTクエリから返さ私は次のクエリ
SELECT DISTINCT name FROM names ORDER BY name
を持っている。しかし、これは何とか重複する行を排除しないのですか?
で重複行を排除、私は重複行を削除するにはPostgresのPostgresの
でSELECTクエリから返さ私は次のクエリ
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);
Thx、これが動作する – Roland
たぶん違う探し-同じ-しかし、文字で何か( LATIN 'a'/CYRILLIC 'ä'のように)
trim()も忘れずに追加してください。そうでない場合、「レコード」と「レコード」は別のエンティティとして扱われます。
SELECT DISTINCT ON (upper(trim(name))) name FROM names ORDER BY upper(trim(name));
と大きいが、あなたが今CITEXTタイプに列をキャストするか、そうであっても、あなたが持っていない列を作ることができます:それは、私は私のクエリを更新しなければならなかった、最初は私を傷つけてしまいました選択してキャストする
SELECT DISTINCT name::citext FROM names ORDER BY name::citext
私は、[テーブルから重複を削除]古代のPostgreSQL 7.3.4バージョンの – Roland
が重複する可能性を使用しています(http://stackoverflow.com/questions/243567/remove-duplicate-from-a-table ) – Flimzy
これは重複していません。 @Flimzy ...かなり曖昧なタイトルで、別の質問。 – ocodo