SQL 重複行を表示しないサンプル(distinct)

SQLの重複行を表示しないサンプルです。
distinctを使用します。

目次

distinct

select distinct 項目名 from テーブル名
  • 項目名で、重複行を非表示にします。

テストデータ

次のテーブルがあるとします。

syainテーブル
id name romaji
1 鈴木 suzuki
2 田中 tanaka
3 鈴木 suzuki

SQL文

上記テーブルに対してdistinctを使用してデータを抽出します。

1行目は、distinctを指定しています。

select distinct name from syain
where name = "鈴木";

 

結果は、1行のみ表示されます。
distinctを指定しない場合は、2行表示されます。

実行結果
name
鈴木

 

distinctで複数項目を指定した時(全項目が重複)

select distinct 項目名1 [,項目名2]・・・from テーブル名
  • distinctで指定した項目が全て重複していれば重複行は表示されません。

テストデータ

次のテーブルがあるとします。

syainテーブル
id name romaji
1 鈴木 suzuki
2 田中 tanaka
3 鈴木 suzuki

SQL文

上記テーブルに対してdistinctで複数項目を指定してデータを抽出します。

1行目は、distinctの横に項目のnameとromajiがあります。

select distinct name,romaji from syain
where name = "鈴木";

 

結果は、nameとromajiの値は重複しているので1行のみ表示されます。

実行結果
name romaji
鈴木 suzuki

 

distinctで複数項目を指定した時(全項目が重複でない)

select distinct 項目名1 [,項目名2]・・・from テーブル名
  • distinctで重複していない項目を指定した場合、その分の行が表示されます。

テストデータ

次のテーブルがあるとします。

syainテーブル
id name romaji
1 鈴木 suzuki
2 田中 tanaka
3 鈴木 suzuki

SQL文

上記テーブルに対してdistinctで重複していない項目を指定してデータを抽出します。

1行目は、distinctの横に項目のidとnameとromajiがあります。
idの値は重複していません。nameとromajiの値は重複しています。

select distinct id,name,romaji from syain
where name = "鈴木";

 

結果は、重複していない項目「id」があるので2行表示されます。

実行結果
id name romaji
1 鈴木 suzuki
3 鈴木 suzuki

関連の記事

SQL INSERT文のサンプル
SQL UPDATE文とDELETE文のサンプル
SQL 複数の行をまとめる(集約関数/group by/having)
SQL 外部結合のサンプル(left outer join/right outer join)
SQL 副問合せのサンプル(サブクエリ)
SQL 自己結合のサンプル
SQL 内部結合のサンプル(inner join)
SQL UNIONのサンプル

△上に戻る