Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JSSUG(Japan SQL Server User Group):第4回 SQL Serv...

JSSUG(Japan SQL Server User Group):第4回 SQL Server 2017勉強会

JSSUG(Japan SQL Server User Group):第4回 SQL Server 2017勉強会の資料

Avatar for masaru1006

masaru1006

March 20, 2018
Tweet

More Decks by masaru1006

Other Decks in Technology

Transcript

  1. 本日の発表の流れ 1.SQLの結合の種類について 1.1.INNER JOIN(内部結合) 1.2.LEFT OUTER JOIN(左外部結合) 1.3.RIGHT OUTER JOIN(右外部結合)

    1.4.FULL OUTER JOINT(完全外部結合) 1.5.CROSS JOIN(クロス結合) 1.6.NATURAL JOIN(自然結合) 1.7.UNION(和結合) 1.8.CROSS APPLY、OUTER APPLY 2018/03/17 JSSUG(Japan SQL Server User Group) 2
  2. NATURAL JOIN(自然結合)  NATURAL JOIN の前後で指定されたテーブルの同じ名前のカラムの値を比較し、値が一 致する行を出力する。  INNER JOINだけでなく、LEFT

    OUTER、RIGHT OUTER、FULL OUTERも可能。  SQL Serverでは、NATURAL JOINは使えない。 2018/03/17 JSSUG(Japan SQL Server User Group) 10
  3. CROSS APPLY、OUTER APPLY(1)  クエリの外部テーブル式によって返される行毎にテーブル値関数を呼び出すことが出来る。  テーブル値関数は右入力として機能し、外部テーブル式は左入力として機能する。  左入力からの行ごとに右入力が評価され、生成された行の組み合わせが最終的な出力に使用される。 

    APPLY操作によって生成される列のリストは、左入力の列のセットでとなる。その後には、右入力によって返さ れた列のリストが続く。  APPLY には、CROSS APPLYとOUTER APPLYという2 つの形式が有る。  CROSS APPLYでは、外部テーブルの行のうち、テーブル値関数から結果セットを生成する行のみが返され る。  OUTER APPLYでは、結果セットを生成する行と生成しない行の両方が返される。そのとき、テーブル値関 数によって生成される列には NULL 値が設定される。  ※参考URL:<https://technet.microsoft.com/ja- jp/library/ms175156(v=sql.105).aspx> 2018/03/17 JSSUG(Japan SQL Server User Group) 12
  4. CROSS APPLY、OUTER APPLY(3)  使いどころ。  左側の1行に対して、右側の関数は複数行を返しても良い。  CASE式を使う場合に、SQLをシンプルに記載可能。 

    動作は分かったが、使いどころは、イマイチ、ピンと来ず。  何か、ご意見有りましたら、頂きたく…(^^;) 2018/03/17 JSSUG(Japan SQL Server User Group) 14