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

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

目次

distinct

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

テストデータ

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

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

SQL文

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

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

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

結果

結果は、以下のとおりです。

name
鈴木

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

 

重複する行としない行

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

テストデータ

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

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

distinctで指定した項目の値が重複する場合

distinctで指定した項目の値が重複する場合です。

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

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

結果

結果は、以下のとおりです。

name romaji
鈴木 suzuki

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

 

distinctで指定した項目の値が重複しない場合

distinctで指定した項目の値が重複しない場合です。

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

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

結果

結果は、以下のとおりです。

id name romaji
1 鈴木 suzuki
3 鈴木 suzuki

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

関連の記事

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

△上に戻る