OracleのDISTINCT(重複行を除外するSQL)

重複行を除外して1行にするDISTINCT

Oracleで重複行を除外するにはDISTINCTを使用します。重複行を除外して1行にするには除外したい列の頭にDISTINCTをつけます。

例1. DISTINCTで重複行を除外するパターン

--住所を取得
SELECT ADDRESS FROM EMP;

<結果>

ADDRESS
東京
東京
埼玉
神奈川
東京

 

--住所を取得(重複除外)
SELECT DISTINCT ADDRESS FROM EMP;

<結果>

ADDRESS
東京
埼玉
神奈川

SELECTの列名の前に「DISTINCT」をつけると、重複行を除外することができました。

例2. DISTINCTで複数列の重複行を除外するパターン

--住所を取得
SELECT ADDRESS1,ADDRESS2 FROM EMP;

<結果>

ADDRESS1 ADDRESS2
東京 渋谷
東京 渋谷
東京 八王子

 

--住所を取得(重複除外)
SELECT DISTINCT ADDRESS1,ADDRESS2 FROM EMP;

<結果>

ADDRESS1 ADDRESS2
東京 渋谷
東京 八王子

DISTINCTを先頭につければ、ADDRESS1,ADDRESS2の両方に適用され、2列の重複を除外して1行にします。DISTINCTをつかって重複行を除外することができました。

以上、Oracleで重複行を除外して1行にするDISTINCTの使い方でした。

コメント