「テーブルの集合」の版間の差分

ナビゲーションに移動 検索に移動
文字列「<source lang」を「<syntaxhighlight lang」に置換
(ページの作成:「== 概要 == SQL Serverでは、複数のSELECT文の結果を、統合(和集合)、重複(積集合)を抽出、差(差集合)を抽出することができる。<br> *…」)
 
(文字列「<source lang」を「<syntaxhighlight lang」に置換)
51行目: 51行目:
テーブルは2つだけでなく、複数のテーブルを統合できる。<br>
テーブルは2つだけでなく、複数のテーブルを統合できる。<br>
注意点としては、テーブルのカラムは同じ数であること。<br>
注意点としては、テーブルのカラムは同じ数であること。<br>
  <source lang="sql">
  <syntaxhighlight lang="sql">
  --野球部とサッカー部のメンバー全員を取得する
  --野球部とサッカー部のメンバー全員を取得する
  SELECT studentno, name FROM act_baseball
  SELECT studentno, name FROM act_baseball
88行目: 88行目:


このように、重複をそのまま取得したい場合はUNION ALL句、重複を排除したい場合はUNION句を使用する。
このように、重複をそのまま取得したい場合はUNION ALL句、重複を排除したい場合はUNION句を使用する。
  <source lang="sql">
  <syntaxhighlight lang="sql">
  --野球部とサッカー部のメンバー全員を取得する
  --野球部とサッカー部のメンバー全員を取得する
  SELECT studentno,name FROM act_baseball
  SELECT studentno,name FROM act_baseball
124行目: 124行目:
テーブルは2つだけでなく、INTERSECT句でそれ以上のテーブルの重複レコードを取得できる。<br>
テーブルは2つだけでなく、INTERSECT句でそれ以上のテーブルの重複レコードを取得できる。<br>
注意点としては、テーブルの列は同じ数でないといけない。<br>
注意点としては、テーブルの列は同じ数でないといけない。<br>
  <source lang="sql">
  <syntaxhighlight lang="sql">
  --野球部とサッカー部の両方に所属しているメンバーを取得する
  --野球部とサッカー部の両方に所属しているメンバーを取得する
  SELECT studentno,name FROM act_baseball
  SELECT studentno,name FROM act_baseball
151行目: 151行目:
注意点としては、テーブルの列は同じ数でないといけない。<br>
注意点としては、テーブルの列は同じ数でないといけない。<br>
ここでは、1つ目のSELECT文がstudentnoカラムとnameカラムの2列なので、それ以降のSELECT文も2列である必要がある。<br>
ここでは、1つ目のSELECT文がstudentnoカラムとnameカラムの2列なので、それ以降のSELECT文も2列である必要がある。<br>
  <source lang="sql">
  <syntaxhighlight lang="sql">
  --野球部にだけ所属しサッカー部には所属していないメンバーを取得する
  --野球部にだけ所属しサッカー部には所属していないメンバーを取得する
  SELECT studentno, name FROM act_baseball
  SELECT studentno, name FROM act_baseball

案内メニュー