• 検索結果がありません。

基本サンプル

N/A
N/A
Protected

Academic year: 2021

シェア "基本サンプル"

Copied!
30
0
0

読み込み中.... (全文を見る)

全文

(1)

SQLCompiler for LINQ(VB)

のサンプル

(LINQPad 用 LINQ to Entities 基本サンプル)

本サンプルで使用した Visual Studio プロジェクトの pubs データベースの概念モデル

は、以下のテーブル名とカラム名が、直接 SQL Sever へクエリする場合と異なるので、

T-SQL が補正されています。

テーブル名が異なるもの

・employee → employees

・royshed → roysheds

・titleauthor → titleauthors

カラム名が異なるもの

・discounts.discount → discounts.discount1

・titles.title → titles.title1

Northwind データベースについては、本サンプルで使用しているテーブル名とカラム名

は、概念モデルと一致しています。

<一覧表>

ファイル名 説明 リンク No1.linq 単一テーブルを使用する 表 1 No2.linq 2つのテーブルのクロス結合を使用する 表 2 No3.linq 2つのテーブルの内部結合を使用する 表 3

No4.linq No3.linq で GROUP BY 句, ORDER BY 句, COUNT(*)を使用する 表 4

No5.linq 二項演算子(+)を使用する 表 5 No6.linq 単純 CASE 式を使用する 表 6 No7.linq 検索 CASE 式を使用する 表 7 No8.linq 単項演算子と括弧式を使用する 表 8 No9.linq 検索条件に括弧を使用する 表 9 No10.linq 検索条件に NOT を使用する 表 10 No11.linq 数値(小数)リテラルを使用する 表 11

No12.linq GROUP BY 句と AVG 関数を使用する 表 12

No13.linq No12.linq の AVG 関数に DISTINCT を使用する 表 13

No14.linq GROUP BY 句と COUNT 関数を使用する 表 14

No15.linq No14.linq の COUNT 関数に DISTINCT を使用する 表 15

No16.linq FROM 句でサブクエリを使用する 表 16

No17.linq WHERE 句でサブクエリを使用する 表 17

No17_2.linq No17.linq と等価な SQL を IN 限定子を使用して作成する 表 17_2

No18.linq HAVING 句でサブクエリを使用する 表 18

(2)

No20.linq LIKE 限定子を使用する 表 20 No21.linq No20.linq で NOT LIKE 限定子を使用する 表 21

No22.linq No21.linq の述語全体を否定する 表 22

No23.linq BETWEEN 限定子を使用する 表 23

No24.linq No23.linq で NOT BETWEEN 限定子を使用する 表 24

No25.linq No24.linq の述語全体を否定する 表 25

No26.linq IS NULL 限定子を使用する 表 26

No27.linq No26.linq で IS NOT NULL 限定子を使用する 表 27

No28.linq No27.linq の述語全体を否定する 表 28

No29.linq IN 限定子を使用する 表 29

No30.linq No29.linq で NOT IN 限定子を使用する 表 30

No31.linq No30.linq の述語全体を否定する 表 31

No32.linq EXISTS 限定子を使用する 表 32

No33.linq No32.linq を NOT EXISTS 限定子にする 表 33

No34.linq ALL 限定子を使用する 表 34

No35.linq No34.linq を NOT ALL 限定子にする 表 35

No36.linq ANY 限定子を使用する 表 36

No37.linq No36.linq で NOT ANY 限定子を使用する 表 37

No38.linq IN 限定子を使用する 表 38

No39.linq No38.linq で NOT IN 限定子を使用する 表 39

No40.linq No39.linq の述語全体を否定する 表 40

No43.linq 自己結合を使用する 表 43

No45.linq 集合演算を FROM 句で使用する 表 45

No46.linq 集合演算を WHERE 句で使用する 表 46

No46_2.linq No46.linq の WHERE 句で IN 限定子を使用する 表 46_2

No47.linq 集合演算を選択リストで使用する 表 47

No48.linq 集合演算をルートクエリで使用する 表 48

No49.linq ビット型を FROM 句で使用する 表 49

No50.linq No49.linq の 2 つ目の結合キーの左辺と右辺を入れ替える 表 50 No50_2.linq No50.linq の 2 つ目の結合キーを WHEHE 句に移動する 表 50_2

No51.linq ビット型を WHERE 句で使用する 表 51 No52.linq ビット型を選択リストで使用する 表 52 No53.linq 時間型を FROM 句で使用する 表 53 No54.linq 時間型を WHERE 句で使用する 表 54 No55_2.linq 時間型を選択リストで使用する(1) 表 55_2 No55_3.linq 時間型を選択リストで使用する(2) 表 55_3 No55_5.linq 時間型を選択リストで使用する(3) 表 55_5

(3)

No56_2.linq 選択リストで 「リレーションエイリアス.*」を指定する 表 56_2 No57_2.linq 選択リストで 「テーブル名.*」を指定する 表 57_2 No58_2.linq テーブルにエイリアスを付与しないでテーブル名を直接使用する 表 58_2 No59.linq ORDER BY 句を数値で指定する 表 59 No60.linq ORDER BY 句をカラム名で指定する(1) 表 60 No61.linq ORDER BY 句をカラム名で指定する(2) 表 61 No62.linq ORDER BY 句で選択リストに含まれないカラム名を指定する(1) 表 62 No63.linq ORDER BY 句で選択リストに含まれないカラム名を指定する(2) 表 63 No75.linq 集合演算に ORDER BY 句を使用する 表 75 ファイル名 No1.linq 説明 単一テーブルを使用する

T-SQL SELECT TOP 10 au_lname, au_fname FROM authors

WHERE au_id = '172-32-1176'

LINQ コード /* LINQ to SQL と同一 */ authors _

.Where(Function(x1) x1.au_id = "172-32-1176") _ .Select(Function(x1) New With { _

x1.au_lname, _ x1.au_fname}) _ .Take(10)

TopPage

ファイル名 No2.linq 説明 2つのテーブルのクロス結合を使用する

T-SQL SELECT t2.au_id, t1.au_lname

FROM authors AS t1, titleauthors AS t2 WHERE t1.au_id = t2.au_id

LINQ コード /* LINQ to SQL と同一 */ authors _

.SelectMany(Function(t2) titleauthors, _

Function(t1, t2) New With {t1, t2}) _ .Where(Function(x1) x1.t1.au_id = x1.t2.au_id) _ .Select(Function(x1) New With { _

x1.t2.au_id, _ x1.t1.au_lname})

TopPage

(4)

ファイル名 No3.linq

説明 2つのテーブルの内部結合を使用する

T-SQL SELECT t2.au_id, t1.au_lname

FROM authors AS t1 INNER JOIN titleauthors AS t2 ON t1.au_id = t2.au_id LINQ コード /* LINQ to SQL と同一 */ authors _ .Join(titleauthors, _ Function(t1) t1.au_id, _ Function(t2) t2.au_id, _

Function(t1, t2) New With {t1, t2}) _ .Select(Function(x1) New With { _

x1.t2.au_id, _ x1.t1.au_lname})

TopPage

ファイル名 No4.linq

説明 No3.linq で GROUP BY 句, ORDER BY 句, COUNT(*)を使用する T-SQL SELECT t2.au_id, COUNT(*)

FROM authors AS t1 INNER JOIN titleauthors AS t2 ON t1.au_id = t2.au_id

GROUP BY t2.au_id ORDER BY t2.au_id DESC

LINQ コード /* NotSupportedException が発生する(System.LINQ.IGrouping を System.Collection s.Generic.IEnumerable にキャストできません。LINQ to Entities では Entity Data Model プリミティブ型のキャストのみがサポートされます) */

authors _

.Join(titleauthors, _

Function(t1) t1.au_id, _ Function(t2) t2.au_id, _

Function(t1, t2) New With {t1, t2}) _

.GroupBy(Function(x1) New With {.grKey1 = x1.t2.au_id}) _ .Select(Function(g1) New With { _

.au_id = g1.Key.grKey1, _ .root_alias_2 = g1.Count()}) _ .OrderByDescending(Function(t) t.au_id)

TopPage

ファイル名 No5.linq 説明 二項演算子(+)を使用する

T-SQL SELECT au_lname + '-' + au_fname AS au_name FROM authors

WHERE au_id = '172-32-1176'

LINQ コード /* LINQ to SQL と同一 */ authors _

(5)

.Where(Function(x1) x1.au_id = "172-32-1176") _ .Select(Function(x1) New With { _

.au_name = x1.au_lname + "-" + x1.au_fname})

TopPage

ファイル名 No6.linq

説明 単純 CASE 式を使用する

T-SQL SELECT t2.au_id, CASE COUNT(*)

WHEN 1 THEN 'one'

WHEN 2 THEN 'two'

ELSE 'over' END AS kosu

FROM authors AS t1 INNER JOIN titleauthors AS t2 ON t1.au_id = t2.au_id

GROUP BY t2.au_id

LINQ コード /* NotSupportedException が発生する(System.LINQ.IGrouping を System.Collection s.Generic.IEnumerable にキャストできません。LINQ to Entities では Entity Data Model プリミティブ型のキャストのみがサポートされます) */

authors _

.Join(titleauthors, _

Function(t1) t1.au_id, _ Function(t2) t2.au_id, _

Function(t1, t2) New With {t1, t2}) _

.GroupBy(Function(x1) New With {.grKey1 = x1.t2.au_id}) _ .Select(Function(g1) New With { _

.au_id = g1.Key.grKey1, _

.kosu = (If(g1.Count() = 1, "one", If(g1.Count() = 2, "two", "over")))})

TopPage

ファイル名 No7.linq

説明 検索 CASE 式を使用する

T-SQL SELECT t2.au_id, CASE WHEN COUNT(*) <= 2 THEN 'onetwo'

ELSE 'over' END AS kosu FROM authors AS t1 INNER JOIN titleauthors AS t2

ON t1.au_id = t2.au_id GROUP BY t2.au_id

LINQ コード /* NotSupportedException が発生する(System.LINQ.IGrouping を System.Collection s.Generic.IEnumerable にキャストできません。LINQ to Entities では Entity Data Model プリミティブ型のキャストのみがサポートされます) */

authors _

.Join(titleauthors, _

Function(t1) t1.au_id, _ Function(t2) t2.au_id, _

Function(t1, t2) New With {t1, t2}) _

.GroupBy(Function(x1) New With {.grKey1 = x1.t2.au_id}) _ .Select(Function(g1) New With { _

.au_id = g1.Key.grKey1, _

(6)

TopPage

ファイル名 No8.linq

説明 単項演算子と括弧式を使用する

T-SQL SELECT au_id, -(au_ord + royaltyper) AS var FROM titleauthors

WHERE au_id = '172-32-1176'

LINQ コード /* LINQ to SQL と同一 */ titleauthors _

.Where(Function(x1) x1.au_id = "172-32-1176") _ .Select(Function(x1) New With { _

x1.au_id, _

.var = -(x1.au_ord + x1.royaltyper)})

TopPage

ファイル名 No9.linq

説明 検索条件に括弧を使用する

T-SQL SELECT au_id FROM titleauthors

WHERE (au_id = '172-32-1176' AND

((title_id = 'PS3333' OR title_id = 'BU1032') AND (au_ord = 1 OR au_ord = 2)) AND royaltyper = 100) LINQ コード /* LINQ to SQL と同一 */ titleauthors _

.Where(Function(x1) (x1.au_id = "172-32-1176" AndAlso ((x1.title_id = "PS3333 " OrElse x1.title_id = _

"BU1032") AndAlso (x1.au_ord = 1 OrElse x1.au_ord = 2)) AndAlso x1.royaltyper = _

100)) _ .Select(Function(x1) New With { _ x1.au_id})

TopPage

ファイル名 No10.linq 説明 検索条件に NOT を使用する T-SQL SELECT au_id FROM titleauthors

WHERE (NOT au_id = '172-32-1176' AND NOT

(au_ord = 3 OR au_ord = 1) AND NOT royaltyper = 40) LINQ コード /* LINQ to SQL と同一 */

(7)

.Where(Function(x1) (Not(x1.au_id = "172-32-1176") AndAlso Not(x1.au_ord = 3 OrElse x1.au_ord = _

1) AndAlso Not(x1.royaltyper = 40))) _ .Select(Function(x1) New With { _

x1.au_id})

TopPage

ファイル名 No11.linq

説明 数値(小数)リテラルを使用する

T-SQL SELECT au_id, au_ord + 1.1 AS goukei FROM titleauthors

WHERE au_id = '172-32-1176'

LINQ コード /* LINQ to SQL と同一 */ titleauthors _

.Where(Function(x1) x1.au_id = "172-32-1176") _ .Select(Function(x1) New With { _

x1.au_id, _

.goukei = x1.au_ord + 1.1D})

TopPage

ファイル名 No12.linq

説明 GROUP BY 句と AVG 関数を使用する

T-SQL SELECT au_ord, AVG(royaltyper) AS heikin FROM titleauthors

GROUP BY au_ord

LINQ コード /* LINQ to SQL と同一 */ titleauthors _

.GroupBy(Function(x1) New With {.grKey1 = x1.au_ord}) _ .Select(Function(g1) New With { _

.au_ord = g1.Key.grKey1, _

.heikin = g1.Average(Function(x1) x1.royaltyper)})

TopPage

ファイル名 No13.linq

説明 No12.linq の AVG 関数に DISTINCT を使用する

T-SQL SELECT au_ord, AVG(DISTINCT royaltyper) AS heikin FROM titleauthors

GROUP BY au_ord

LINQ コード /* LINQ to SQL と同一 */ titleauthors _

.GroupBy(Function(x1) New With {.grKey1 = x1.au_ord}) _ .Select(Function(g1) New With { _

.au_ord = g1.Key.grKey1, _

(8)

().Average()})

TopPage

ファイル名 No14.linq

説明 GROUP BY 句と COUNT 関数を使用する

T-SQL SELECT au_ord, COUNT(au_ord) AS kosuu FROM titleauthors

GROUP BY au_ord

LINQ コード /* LINQ to SQL と同一 */ titleauthors _

.GroupBy(Function(x1) New With {.grKey1 = x1.au_ord}) _ .Select(Function(g1) New With { _

.au_ord = g1.Key.grKey1, _

.kosuu = g1.Count(Function(x1) g1.Key.grKey1 IsNot Nothing)})

TopPage

ファイル名 No15.linq

説明 No14.linq の COUNT 関数に DISTINCT を使用する

T-SQL SELECT au_ord, COUNT(DISTINCT royaltyper) AS kosuu FROM titleauthors

GROUP by au_ord

LINQ コード /* LINQ to SQL と同一 */ titleauthors _

.GroupBy(Function(x1) New With {.grKey1 = x1.au_ord}) _ .Select(Function(g1) New With { _

.au_ord = g1.Key.grKey1, _

.kosuu = g1.Where(Function(x1) x1.royaltyper IsNot Nothing).Select(Functi on(x1) x1.royaltyper).Distinct().Count()})

TopPage

ファイル名 No16.linq

説明 FROM 句でサブクエリを使用する

T-SQL SELECT t2.au_id, t2.au_lname + ' ' + t2.au_fname AS namae, t1.royaltyper FROM (SELECT au_id, royaltyper

FROM titleauthors

WHERE royaltyper = 100) AS t1 INNER JOIN authors AS t2 ON t1.au_id = t2.au_id

LINQ コード /* LINQ to SQL と同一 */ titleauthors _

.Where(Function(x2) x2.royaltyper = 100) _ .Select(Function(x2) New With { _

x2.au_id, _ x2.royaltyper}) _ .Join(authors, _

(9)

Function(t1) t1.au_id, _ Function(t2) t2.au_id, _

Function(t1, t2) New With {t1, t2}) _ .Select(Function(x1) New With { _

x1.t2.au_id, _

.namae = x1.t2.au_lname + " " + x1.t2.au_fname, _ x1.t1.royaltyper})

TopPage

ファイル名 No17.linq 説明 WHERE 句でサブクエリを使用する T-SQL SELECT t1.au_id FROM titleauthors AS t1 WHERE (SELECT t2.au_id

FROM authors AS t2

WHERE t1.au_id = t2.au_id AND t1.royaltyper = 100) = '172-32-1176'

LINQ コード /* LINQ to SQL と同一 */ titleauthors _

.Where(Function(x1) authors _

.Where(Function(x2) x1.au_id = x2.au_id AndAlso x1.roya ltyper = 100) _

.Select(Function(x2) New With { _

x2.au_id}).Any(Function(t) "172-32-1176" = t.au_id)) _

.Select(Function(x1) New With { _ x1.au_id})

TopPage

ファイル名 No17_2.linq 説明 No17.linq と等価な SQL を IN 限定子を使用して作成する T-SQL SELECT t1.au_id FROM titleauthors AS t1

WHERE '172-32-1176' IN (SELECT t2.au_id

FROM authors AS t2

WHERE t1.au_id = t2.au_id AND t1.royaltyper = 100) LINQ コード /* LINQ to SQL と同一 */

titleauthors _

.Where(Function(x1) authors _

.Where(Function(x2) x1.au_id = x2.au_id AndAlso x1.roya ltyper = 100) _

.Select(Function(x2) New With { _

x2.au_id}).Any(Function(t) "172-32-1176" = t.au_id)) _

.Select(Function(x1) New With { _ x1.au_id})

(10)

TopPage

ファイル名 No18.linq 説明 HAVING 句でサブクエリを使用する T-SQL SELECT stor_id FROM sales GROUP BY stor_id

HAVING AVG(qty) > (SELECT AVG(qty)

FROM sales

WHERE payterms = 'Net 30'

GROUP BY payterms)

LINQ コード /* LINQ to Entities では SingleOrDefault()は使用できないので、 FirstOrDefault()を使用する */

sales _

.GroupBy(Function(x1) New With {.grKey1 = x1.stor_id}) _

.Where(Function(g1) g1.Average(Function(x1) CType(x1.qty, Integer?)) > sales _

.Whe re(Function(x2) x2.payterms = "Net 30") _

.Gro upBy(Function(x2) New With {.grKey2 = x2.payterms}) _

.Sel ect(Function(g2) g2.Average(Function(x2) CType(x2.qty, Integer?))).FirstOrDef ault()) _

.Select(Function(g1) New With { _ .stor_id = g1.Key.grKey1})

TopPage

ファイル名 No19.linq

説明 選択リストでサブクエリを使用する

T-SQL SELECT stor_id, qty - (SELECT AVG(qty) FROM sales

WHERE stor_id = '7067'

GROUP BY stor_id) AS diff FROM sales

WHERE stor_id = '7067'

LINQ コード /* LINQ to Entities では SingleOrDefault()は使用できないので、 FirstOrDefault()を使用する */

sales _

.Where(Function(x1) x1.stor_id = "7067") _ .Select(Function(x1) New With { _

x1.stor_id, _

.diff = x1.qty - sales _

.Where(Function(x2) x2.stor_id = "7067") _

.GroupBy(Function(x2) New With {.grKey1 = x2.stor_id}) _

.Select(Function(g1) g1.Average(Function(x2) CType(x2. qty, Integer?))).FirstOrDefault()})

(11)

TopPage

ファイル名 No20.linq

説明 LIKE 限定子を使用する

T-SQL SELECT au_id, title_id FROM titleauthors

WHERE title_id LIKE 'PS%'

LINQ コード /* LINQ to Entities では System.Data.Linq.SqlClient.SqlMethods.Like()は使 用できないので、StartsWith()を使用する */

titleauthors _

.Where(Function(x1) (x1.title_id).StartsWith("PS")) _ .Select(Function(x1) New With { _

x1.au_id, _ x1.title_id})

TopPage

ファイル名 No21.linq

説明 No20.linq で NOT LIKE 限定子を使用する

T-SQL SELECT au_id, title_id FROM titleauthors

WHERE title_id NOT LIKE 'PS%'

LINQ コード /* LINQ to Entities では System.Data.Linq.SqlClient.SqlMethods.Like()は使 用できないので、StartsWith()を使用する */

titleauthors _

.Where(Function(x1) Not((x1.title_id).StartsWith("PS"))) _ .Select(Function(x1) New With { _

x1.au_id, _ x1.title_id})

TopPage

ファイル名 No22.linq

説明 No21.linq の述語全体を否定する

T-SQL SELECT au_id, title_id FROM titleauthors

WHERE NOT title_id NOT LIKE 'PS%'

LINQ コード /* LINQ to Entities では System.Data.Linq.SqlClient.SqlMethods.Like()は使 用できないので、StartsWith()を使用する */

titleauthors _

.Where(Function(x1) (x1.title_id).StartsWith("PS")) _ .Select(Function(x1) New With { _

x1.au_id, _ x1.title_id})

TopPage

(12)

ファイル名 No23.linq

説明 BETWEEN 限定子を使用する

T-SQL SELECT au_id, royaltyper FROM titleauthors

WHERE royaltyper BETWEEN 75 AND 100 LINQ コード /* LINQ to SQL と同一 */

titleauthors _

.Where(Function(x1) x1.royaltyper >= 75 AndAlso x1.royaltyper <= 100) _ .Select(Function(x1) New With { _

x1.au_id, _ x1.royaltyper})

TopPage

ファイル名 No24.linq

説明 No23.linq で NOT BETWEEN 限定子を使用する T-SQL SELECT au_id, royaltyper

FROM titleauthors

WHERE royaltyper NOT BETWEEN 75 AND 100 LINQ コード /* LINQ to SQL と同一 */

titleauthors _

.Where(Function(x1) Not(x1.royaltyper >= 75 AndAlso x1.royaltyper <= 100)) _ .Select(Function(x1) New With { _

x1.au_id, _ x1.royaltyper})

TopPage

ファイル名 No25.linq

説明 No24.linq の述語全体を否定する

T-SQL SELECT au_id, royaltyper FROM titleauthors

WHERE NOT royaltyper NOT BETWEEN 75 AND 100 LINQ コード /* LINQ to SQL と同一 */

titleauthors _

.Where(Function(x1) x1.royaltyper >= 75 AndAlso x1.royaltyper <= 100) _ .Select(Function(x1) New With { _

x1.au_id, _ x1.royaltyper})

TopPage

ファイル名 No26.linq 説明 IS NULL 限定子を使用する T-SQL SELECT title_id

(13)

FROM titles

WHERE price IS NULL LINQ コード /* LINQ to SQL と同一 */

titles _

.Where(Function(x1) x1.price Is Nothing) _ .Select(Function(x1) New With { _

x1.title_id})

TopPage

ファイル名 No27.linq

説明 No26.linq で IS NOT NULL 限定子を使用する T-SQL SELECT title_id

FROM titles

WHERE price IS NOT NULL LINQ コード /* LINQ to SQL と同一 */

titles _

.Where(Function(x1) Not(x1.price Is Nothing)) _ .Select(Function(x1) New With { _

x1.title_id})

TopPage

ファイル名 No28.linq 説明 No27.linq の述語全体を否定する T-SQL SELECT title_id FROM titles

WHERE NOT price IS NOT NULL LINQ コード /* LINQ to SQL と同一 */

titles _

.Where(Function(x1) x1.price Is Nothing) _ .Select(Function(x1) New With { _

x1.title_id})

TopPage

ファイル名 No29.linq 説明 IN 限定子を使用する T-SQL SELECT au_ord FROM titleauthors WHERE au_ord IN (2,3) LINQ コード /* LINQ to SQL と同一 */ titleauthors _

.Where(Function(x1) (New Integer?() {2, 3}).Contains(x1.au_ord)) _ .Select(Function(x1) New With { _

(14)

TopPage

ファイル名 No30.linq

説明 No29.linq で NOT IN 限定子を使用する

T-SQL SELECT au_ord FROM titleauthors

WHERE au_ord NOT IN (2,3) LINQ コード /* LINQ to SQL と同一 */

titleauthors _

.Where(Function(x1) Not((New Integer?() {2, 3}).Contains(x1.au_ord))) _ .Select(Function(x1) New With { _

x1.au_ord})

TopPage

ファイル名 No31.linq 説明 No30.linq の述語全体を否定する T-SQL SELECT au_ord FROM titleauthors

WHERE NOT au_ord NOT IN (2,3) LINQ コード /* LINQ to SQL と同一 */

titleauthors _

.Where(Function(x1) (New Integer?() {2, 3}).Contains(x1.au_ord)) _ .Select(Function(x1) New With { _

x1.au_ord})

TopPage

ファイル名 No32.linq 説明 EXISTS 限定子を使用する T-SQL SELECT t1.title_id FROM titles AS t1 WHERE EXISTS (SELECT *

FROM titleauthors AS t2

WHERE t1.title_id = t2.title_id AND t2.au_ord = 3) LINQ コード /* LINQ to SQL と同一 */

titles _

.Where(Function(x1) titleauthors.Any(Function(x2) x1.title_id = x2.title_id A ndAlso x2.au_ord = 3)) _

.Select(Function(x1) New With { _ x1.title_id})

TopPage

(15)

説明 No32.linq を NOT EXISTS 限定子にする T-SQL SELECT t1.title_id

FROM titles AS t1

WHERE NOT EXISTS (SELECT *

FROM titleauthors AS t2

WHERE t1.title_id = t2.title_id AND t2.au_ord = 3) LINQ コード /* LINQ to SQL と同一 */

titles _

.Where(Function(x1) Not(titleauthors.Any(Function(x2) x1.title_id = x2.title_ id AndAlso x2.au_ord = 3))) _

.Select(Function(x1) New With { _ x1.title_id})

TopPage

ファイル名 No34.linq 説明 ALL 限定子を使用する T-SQL SELECT stor_id FROM sales GROUP BY stor_id

HAVING AVG(qty) >= ALL (SELECT AVG(qty)

FROM sales

GROUP BY payterms) LINQ コード /* LINQ to SQL と同一 */

sales _

.GroupBy(Function(x1) New With {.grKey1 = x1.stor_id}) _ .Where(Function(g1) sales _

.GroupBy(Function(x2) New With {.grKey2 = x2.payterms}) _

.Select(Function(g2) New With { _

.res1 = g2.Average(Function(x2) CType(x2.qty, Integ er?))}).All(Function(t) g1.Average(Function(x1) CType(x1.qty, Integer?)) >= t. res1)) _

.Select(Function(g1) New With { _ .stor_id = g1.Key.grKey1})

TopPage

ファイル名 No35.linq

説明 No34.linq を NOT ALL 限定子にする

T-SQL SELECT stor_id FROM sales GROUP BY stor_id

HAVING NOT AVG(qty) >= ALL (SELECT AVG(qty)

FROM sales

GROUP BY payterms) LINQ コード /* LINQ to SQL と同一 */

(16)

sales _

.GroupBy(Function(x1) New With {.grKey1 = x1.stor_id}) _ .Where(Function(g1) Not(sales _

.GroupBy(Function(x2) New With {.grKey2 = x2.payter ms}) _

.Select(Function(g2) New With { _

.res1 = g2.Average(Function(x2) CType(x2.qty, I nteger?))}).All(Function(t) g1.Average(Function(x1) CType(x1.qty, Integer?)) >= _

t.res1))) _ .Select(Function(g1) New With { _ .stor_id = g1.Key.grKey1})

TopPage

ファイル名 No36.linq 説明 ANY 限定子を使用する T-SQL SELECT stor_id FROM sales GROUP BY stor_id

HAVING AVG(qty) >= ANY (SELECT AVG(qty)

FROM sales

GROUP BY payterms) LINQ コード /* LINQ to SQL と同一 */

sales _

.GroupBy(Function(x1) New With {.grKey1 = x1.stor_id}) _ .Where(Function(g1) sales _

.GroupBy(Function(x2) New With {.grKey2 = x2.payterms}) _

.Select(Function(g2) New With { _

.res1 = g2.Average(Function(x2) CType(x2.qty, Integ er?))}).Any(Function(t) g1.Average(Function(x1) CType(x1.qty, Integer?)) >= t. res1)) _

.Select(Function(g1) New With { _ .stor_id = g1.Key.grKey1})

TopPage

ファイル名 No37.linq

説明 No36.linq で NOT ANY 限定子を使用する

T-SQL SELECT stor_id FROM sales GROUP BY stor_id

HAVING NOT AVG(qty) >= ANY (SELECT AVG(qty)

FROM sales

GROUP BY payterms) LINQ コード /* LINQ to SQL と同一 */

sales _

.GroupBy(Function(x1) New With {.grKey1 = x1.stor_id}) _ .Where(Function(g1) Not(sales _

(17)

.GroupBy(Function(x2) New With {.grKey2 = x2.payter ms}) _

.Select(Function(g2) New With { _

.res1 = g2.Average(Function(x2) CType(x2.qty, I nteger?))}).Any(Function(t) g1.Average(Function(x1) CType(x1.qty, Integer?)) >= _

t.res1))) _ .Select(Function(g1) New With { _ .stor_id = g1.Key.grKey1})

TopPage

ファイル名 No38.linq

説明 IN 限定子を使用する

T-SQL SELECT stor_id, qty FROM sales

WHERE qty IN (SELECT qty FROM sales

WHERE payterms = 'ON invoice')

LINQ コード /* LINQ to SQL と同一 */ sales _

.Where(Function(x1) sales _

.Where(Function(x2) x2.payterms = "ON invoice") _ .Select(Function(x2) New With { _

x2.qty}).Any(Function(t) x1.qty = t.qty)) _ .Select(Function(x1) New With { _

x1.stor_id, _ x1.qty})

TopPage

ファイル名 No39.linq

説明 No38.linq で NOT IN 限定子を使用する

T-SQL SELECT stor_id, qty FROM sales

WHERE qty NOT IN (SELECT qty FROM sales

WHERE payterms = 'ON invoice')

LINQ コード /* LINQ to SQL と同一 */ sales _

.Where(Function(x1) sales _

.Where(Function(x2) x2.payterms = "ON invoice") _ .Select(Function(x2) New With { _

x2.qty}).All(Function(t) x1.qty <> t.qty)) _ .Select(Function(x1) New With { _

x1.stor_id, _ x1.qty})

TopPage

(18)

ファイル名 No40.linq

説明 No39.linq の述語全体を否定する

T-SQL SELECT stor_id, qty FROM sales

WHERE NOT qty IN NOT (SELECT qty FROM sales

WHERE payterms = 'ON invoice')

LINQ コード /* LINQ to SQL と同一 */ sales _

.Where(Function(x1) Not(sales _

.Where(Function(x2) x2.payterms = "ON invoice") _ .Select(Function(x2) New With { _

x2.qty}).All(Function(t) x1.qty <> t.qty))) _ .Select(Function(x1) New With { _

x1.stor_id, _ x1.qty})

TopPage

ファイル名 No43.linq

説明 自己結合を使用する

T-SQL SELECT t1.stor_id AS store1, t2.stor_id AS store2 FROM stores AS t1, stores AS t2

WHERE t1.stor_id < t2.stor_id LINQ コード /* LINQ to SQL と同一 */

stores _

.SelectMany(Function(t2) stores, _

Function(t1, t2) New With {t1, t2}) _

.Where(Function(x1) String.Compare(x1.t1.stor_id,x1.t2.stor_id) < 0) _ .Select(Function(x1) New With { _

.store1 = x1.t1.stor_id, _ .store2 = x1.t2.stor_id})

TopPage

ファイル名 No45.linq

説明 集合演算を FROM 句で使用する

T-SQL SELECT t3.au_id, t3.namae1, t3.r1

FROM (SELECT t2.au_id, t2.au_lname + ' ' + t2.au_fname AS namae1,

t1.royaltyper AS r1

FROM (SELECT au_id, royaltyper FROM titleauthors WHERE royaltyper = 100

) AS t1 INNER JOIN authors AS t2 ON t1.au_id = t2.au_id UNION

(19)

t1.royaltyper AS r2

FROM (SELECT au_id, royaltyper FROM titleauthors WHERE royaltyper <> 100

) AS t1 INNER JOIN authors AS t2 ON t1.au_id = t2.au_id ) t3 ORDER BY t3.r1 LINQ コード /* LINQ to SQL と同一 */ titleauthors _ .Where(Function(x3) x3.royaltyper = 100) _ .Select(Function(x3) New With { _

x3.au_id, _ x3.royaltyper}) _ .Join(authors, _

Function(t1) t1.au_id, _ Function(t2) t2.au_id, _

Function(t1, t2) New With {t1, t2}) _ .Select(Function(x2) New With { _

x2.t2.au_id, _

.namae1 = x2.t2.au_lname + " " + x2.t2.au_fname, _ .r1 = x2.t1.royaltyper}) _

.Union(titleauthors _

.Where(Function(x5) x5.royaltyper <> 100) _ .Select(Function(x5) New With { _

x5.au_id, _ x5.royaltyper}) _ .Join(authors, _

Function(t1) t1.au_id, _ Function(t2) t2.au_id, _

Function(t1, t2) New With {t1, t2}) _ .Select(Function(x4) New With { _

x4.t2.au_id, _

.namae1 = x4.t2.au_lname + " " + x4.t2.au_fname, _ .r1 = x4.t1.royaltyper})) _

.Select(Function(x1) New With { _ x1.au_id, _ x1.namae1, _ x1.r1}) _ .OrderBy(Function(t) t.r1)

TopPage

ファイル名 No46.linq 説明 集合演算を WHERE 句で使用する T-SQL SELECT t1.au_id FROM titleauthors AS t1 WHERE ( SELECT t2.au_id FROM authors AS t2

WHERE t1.au_id = t2.au_id AND t1.royaltyper = 100

(20)

UNION

SELECT t2.au_id FROM authors AS t2

WHERE t1.au_id = t2.au_id AND t1.royaltyper <> 100 ) = '172-32-1176'

LINQ コード /* NotSupportedException が発生する(System.LINQ.IQueryable を System.Collection s.Generic.IEnumerable にキャストできません。LINQ to Entities では Entity Data Model プリミティブ型のキャストのみがサポートされます) */

titleauthors _

.Where(Function(x1) authors _

.Where(Function(x2) x1.au_id = x2.au_id AndAlso x1.roya ltyper = 100) _

.Select(Function(x2) New With { _ x2.au_id}) _

.Union(authors _

.Where(Function(x3) x1.au_id = x3.au_id AndAls o x1.royaltyper <> 100) _

.Select(Function(x3) New With { _

x3.au_id})).Any(Function(t) "172-32-1176"

= t.au_id)) _

.Select(Function(x1) New With { _ x1.au_id})

TopPage

ファイル名 No46_2.linq 説明 No46.linq の WHERE 句で IN 限定子を使用する T-SQL SELECT t1.au_id FROM titleauthors AS t1 WHERE '172-32-1176' IN ( SELECT t2.au_id FROM authors AS t2

WHERE t1.au_id = t2.au_id AND t1.royaltyper = 100 UNION

SELECT t2.au_id FROM authors AS t2

WHERE t1.au_id = t2.au_id

AND t1.royaltyper <> 100)

LINQ コード /* NotSupportedException が発生する(System.LINQ.IQueryable を System.Collection s.Generic.IEnumerable にキャストできません。LINQ to Entities では Entity Data Model プリミティブ型のキャストのみがサポートされます) */

titleauthors _

.Where(Function(x1) authors _

.Where(Function(x2) x1.au_id = x2.au_id AndAlso x1.roya ltyper = 100) _

.Select(Function(x2) New With { _ x2.au_id}) _

.Union(authors _

(21)

Also x1.royaltyper <> 100) _

.Select(Function(x3) New With { _

x3.au_id})).Any(Function(t) "172-32-117 6" = t.au_id)) _

.Select(Function(x1) New With { _ x1.au_id})

TopPage

ファイル名 No47.linq

説明 集合演算を選択リストで使用する

T-SQL SELECT t1.au_ord, t1.royaltyper - ( SELECT AVG(royaltyper) FROM titleauthors AS t1 WHERE t1.au_ord = 1 GROUP BY t1.au_ord UNION

SELECT AVG(royaltyper)

FROM titleauthors AS t1 WHERE t1.au_ord = 1

GROUP BY t1.au_ord) AS diff FROM titleauthors AS t1

WHERE au_ord = 1

LINQ コード /* LINQ to Entities では SingleOrDefault()は使用できないので、 FirstOrDefault()を使用する */

titleauthors _

.Where(Function(x1) x1.au_ord = 1) _ .Select(Function(x1) New With { _ x1.au_ord, _

.diff = x1.royaltyper - titleauthors _

.Where(Function(x2) x2.au_ord = 1) _

.GroupBy(Function(x2) New With {.grKey1 = x2.au _ord}) _

.Select(Function(g1) g1.Average(Function(x2) x2. royaltyper)) _

.Union(titleauthors _

.Where(Function(x3) x3.au_ord = 1) _ .GroupBy(Function(x3) New With {.grKey 2 = x3.au_ord}) _ .Select(Function(g2) g2.Average(Functi on(x3) x3.royaltyper))).FirstOrDefault()})

TopPage

ファイル名 No48.linq 説明 集合演算をルートクエリで使用する

T-SQL SELECT au_id, title_id FROM titleauthors WHERE au_ord = 1 UNION

(22)

FROM titleauthors WHERE au_ord <> 1 LINQ コード /* LINQ to SQL と同一 */

titleauthors _

.Where(Function(x1) x1.au_ord = 1) _ .Select(Function(x1) New With { _ x1.au_id, _

x1.title_id}) _ .Union(titleauthors _

.Where(Function(x2) x2.au_ord <> 1) _ .Select(Function(x2) New With { _ x2.au_id, _

x2.title_id}))

TopPage

ファイル名 No49.linq

説明 ビット型を FROM 句で使用する

T-SQL SELECT a.au_id, t.title_id

FROM authors AS a INNER JOIN titleauthors AS t ON a.au_id = t.au_id

AND a.contract = 1 LINQ コード /* LINQ to SQL と同一 */

authors _

.Join(titleauthors, _

Function(a) New With {a.au_id, .key1 = a.contract}, _

Function(t) New With {t.au_id, .key1 = (If(1 = 0, False, True))}, _ Function(a, t) New With {a, t}) _

.Select(Function(x1) New With { _ x1.a.au_id, _

x1.t.title_id})

TopPage

ファイル名 No50.linq

説明 No49.linq の 2 つ目の結合キーの左辺と右辺を入れ替える

T-SQL SELECT a.au_id, t.title_id

FROM authors AS a INNER JOIN titleauthors AS t ON a.au_id = t.au_id

AND 1 = a.contract LINQ コード /* LINQ to SQL と同一 */

authors _

.Join(titleauthors, _

Function(a) New With {a.au_id, .key1 = a.contract}, _

Function(t) New With {t.au_id, .key1 = (If(1 = 0, False, True))}, _ Function(a, t) New With {a, t}) _

.Select(Function(x1) New With { _ x1.a.au_id, _

(23)

TopPage

ファイル名 No50_2.linq

説明 No50.linq の 2 つ目の結合キーを WHEHE 句に移動する

T-SQL SELECT a.au_id, t.title_id

FROM authors AS a INNER JOIN titleauthors AS t ON a.au_id = t.au_id WHERE 1 = a.contract LINQ コード /* LINQ to SQL と同一 */ authors _ .Join(titleauthors, _ Function(a) a.au_id, _ Function(t) t.au_id, _

Function(a, t) New With {a, t}) _

.Where(Function(x1) (If(1 = 0, False, True)) = x1.a.contract) _ .Select(Function(x1) New With { _

x1.a.au_id, _ x1.t.title_id})

TopPage

ファイル名 No51.linq

説明 ビット型を WHERE 句で使用する

T-SQL SELECT a.au_id, t.title_id

FROM authors AS a INNER JOIN titleauthors AS t ON a.au_id = t.au_id WHERE a.contract = 1 LINQ コード /* LINQ to SQL と同一 */ authors _ .Join(titleauthors, _ Function(a) a.au_id, _ Function(t) t.au_id, _

Function(a, t) New With {a, t}) _

.Where(Function(x1) x1.a.contract = (If(1 = 0, False, True))) _ .Select(Function(x1) New With { _

x1.a.au_id, _ x1.t.title_id})

TopPage

ファイル名 No52.linq

説明 ビット型を選択リストで使用する

T-SQL SELECT a.au_id, a.contract, t.title_id

FROM authors AS a INNER JOIN titleauthors AS t ON a.au_id = t.au_id

AND a.state = 'UT'

(24)

authors _

.Join(titleauthors, _

Function(a) New With {a.au_id, .key1 = a.state}, _ Function(t) New With {t.au_id, .key1 = "UT"}, _ Function(a, t) New With {a, t}) _

.Select(Function(x1) New With { _ x1.a.au_id, _ x1.a.contract, _ x1.t.title_id})

TopPage

ファイル名 No53.linq 説明 時間型を FROM 句で使用する

T-SQL SELECT t1.title_id, t2.au_id

FROM titles AS t1 INNER JOIN titleauthors AS t2 ON t1.title_id = t2.title_id

AND t1.pubdate > '2000-01-01'

LINQ コード /* LINQ to Entities では Parse メソッドは使用できないため、DateTime コンスト ラクタを使用する */

titles _

.SelectMany(Function(t2) titleauthors, _

Function(t1, t2) New With {t1, t2}) _

.Where(Function(x1) x1.t1.title_id = x1.t2.title_id AndAlso x1.t1.pubdate > New DateTime(2000, 01, 01)) _

.Select(Function(x1) New With { _ x1.t1.title_id, _

x1.t2.au_id})

TopPage

ファイル名 No54.linq

説明 時間型を WHERE 句で使用する

T-SQL SELECT t1.title_id, t2.au_id

FROM titles AS t1 INNER JOIN titleauthors AS t2 ON t1.title_id = t2.title_id

WHERE t1.pubdate > '2000-01-01'

LINQ コード /* LINQ to Entities では Parse メソッドは使用できないため、DateTime コンスト ラクタを使用する */

titles _

.Join(titleauthors, _

Function(t1) t1.title_id, _ Function(t2) t2.title_id, _

Function(t1, t2) New With {t1, t2}) _

.Where(Function(x1) x1.t1.pubdate > New DateTime(2000, 01, 01)) _ .Select(Function(x1) New With { _

x1.t1.title_id, _ x1.t2.au_id})

(25)

TopPage

ファイル名 No55_2.linq

説明 時間型を選択リストで使用する(1)

T-SQL SELECT t1.title_id, t1.pubdate, t2.au_id

FROM titles AS t1 INNER JOIN titleauthors AS t2 ON t1.title_id = t2.title_id WHERE t2.au_ord = 3 LINQ コード /* LINQ to SQL と同一 */ titles _ .Join(titleauthors, _ Function(t1) t1.title_id, _ Function(t2) t2.title_id, _

Function(t1, t2) New With {t1, t2}) _ .Where(Function(x1) x1.t2.au_ord = 3) _ .Select(Function(x1) New With { _ x1.t1.title_id, _ x1.t1.pubdate, _ x1.t2.au_id})

TopPage

ファイル名 No55_3.linq 説明 時間型を選択リストで使用する(2)

T-SQL SELECT t1.title_id, t1.pubdate, t2.au_id

FROM titles AS t1 INNER JOIN titleauthors AS t2 ON t1.title_id = t2.title_id

AND t1.royalty = t2.au_ord * 10 LINQ コード /* LINQ to SQL と同一 */

titles _

.Join(titleauthors, _

Function(t1) New With {t1.title_id, .key1 = t1.royalty}, _ Function(t2) New With {t2.title_id, .key1 = t2.au_ord * 10}, _ Function(t1, t2) New With {t1, t2}) _

.Select(Function(x1) New With { _ x1.t1.title_id, _ x1.t1.pubdate, _ x1.t2.au_id})

TopPage

ファイル名 No55_5.linq 説明 時間型を選択リストで使用する(3)

T-SQL SELECT t1.title_id, t1.pubdate, t1.pubdate + 1 FROM titles AS t1 INNER JOIN titleauthors AS t2

ON t1.title_id = t2.title_id

AND t1.royalty = t2.au_ord * 10

(26)

System.Data.Objects.SqlClient.SqlFunctions.DateAdd()を使用する */ titles _

.Join(titleauthors, _

Function(t1) New With {t1.title_id, .key1 = t1.royalty}, _ Function(t2) New With {t2.title_id, .key1 = t2.au_ord * 10}, _ Function(t1, t2) New With {t1, t2}) _

.Select(Function(x1) New With { _ x1.t1.title_id, _ x1.t1.pubdate, _ .root_alias_3 = System.Data.Objects.SqlClient.SqlFunctions.DateAdd( "day", CDbl( +1), x1.t1.pubdate)})

TopPage

ファイル名 No56_2.linq 説明 選択リストで 「リレーションエイリアス.*」を指定する T-SQL SELECT t.*

FROM authors AS a INNER JOIN titleauthors AS t ON a.au_id = t.au_id WHERE t.au_ord = 3 LINQ コード /* LINQ to SQL と同一 */ authors _ .Join(titleauthors, _ Function(a) a.au_id, _ Function(t) t.au_id, _

Function(a, t) New With {a, t}) _ .Where(Function(x1) x1.t.au_ord = 3) _ .Select(Function(x1) New With { _ x1.t.au_id, _ x1.t.title_id, _ x1.t.au_ord, _ x1.t.royaltyper})

TopPage

ファイル名 No57_2.linq 説明 選択リストで 「テーブル名.*」を指定する T-SQL SELECT titleauthors.*

FROM authors INNER JOIN titleauthors

ON authors.au_id = titleauthors.au_id WHERE titleauthors.au_ord = 3 LINQ コード /* LINQ to SQL と同一 */ authors _ .Join(titleauthors, _ Function(a) a.au_id, _ Function(t) t.au_id, _

Function(a, t) New With {a, t}) _ .Where(Function(x1) x1.t.au_ord = 3) _ .Select(Function(x1) New With { _ x1.t.au_id, _

(27)

x1.t.title_id, _ x1.t.au_ord, _ x1.t.royaltyper})

TopPage

ファイル名 No58_2.linq 説明 テーブルにエイリアスを付与しないでテーブル名を直接使用する T-SQL SELECT titleauthors.*

FROM titles INNER JOIN titleauthors

ON titles.title_id = titleauthors.title_id WHERE titleauthors.au_ord = 3 LINQ コード /* LINQ to SQL と同一 */ titles _ .Join(titleauthors, _ Function(t) t.title_id, _ Function(ti) ti.title_id, _

Function(t, ti) New With {t, ti}) _ .Where(Function(x1) x1.ti.au_ord = 3) _ .Select(Function(x1) New With { _ x1.ti.au_id, _ x1.ti.title_id, _ x1.ti.au_ord, _ x1.ti.royaltyper})

TopPage

ファイル名 No59.linq 説明 ORDER BY 句を数値で指定する

T-SQL SELECT t1.title_id, t1.price,

(SELECT COUNT(t2.price) FROM titles AS t2

WHERE t2.price > t1.price) + 1 AS rank FROM titles AS t1

ORDER BY 3

LINQ コード /* LINQ to SQL と同一 */ titles _

.Select(Function(x1) New With { _ x1.title_id, _

x1.price, _ .rank = titles _

.Where(Function(x2) x2.price > x1.price).Count(Function(x2) x2. price IsNot Nothing) + 1}) _

.OrderBy(Function(t) t.rank)

TopPage

(28)

説明 ORDER BY 句をカラム名で指定する(1) T-SQL SELECT t1.title_id, t1.price,

(SELECT COUNT(t2.price) FROM titles AS t2

WHERE t2.price > t1.price) + 1 AS rank FROM titles AS t1

ORDER BY t1.title_id LINQ コード /* LINQ to SQL と同一 */

titles _

.Select(Function(x1) New With { _ x1.title_id, _

x1.price, _ .rank = titles _

.Where(Function(x2) x2.price > x1.price).Count(Function(x2) x2. price IsNot Nothing) + 1}) _

.OrderBy(Function(t) t.title_id)

TopPage

ファイル名 No61.linq

説明 ORDER BY 句をカラム名で指定する(2)

T-SQL SELECT t1.title_id, t1.price,

(SELECT COUNT(t2.price) FROM titles AS t2

WHERE t2.price > t1.price) + 1 AS rank FROM titles as t1

ORDER BY title_id LINQ コード /* LINQ to SQL と同一 */

titles _

.Select(Function(x1) New With { _ x1.title_id, _

x1.price, _ .rank = titles _

.Where(Function(x2) x2.price > x1.price).Count(Function(x2) x2. price IsNot Nothing) + 1}) _

.OrderBy(Function(t) t.title_id)

TopPage

ファイル名 No62.linq

説明 ORDER BY 句で選択リストに含まれないカラム名を指定する(1)

T-SQL SELECT t1.title_id, t1.price,

(SELECT COUNT(t2.price) FROM titles AS t2

WHERE t2.price > t1.price) + 1 AS rank FROM titles AS t1

ORDER BY t1.pub_id LINQ コード /* LINQ to SQL と同一 */

(29)

titles _

.OrderBy(Function(x1) x1.pub_id) _ .Select(Function(x1) New With { _ x1.title_id, _

x1.price, _ .rank = titles _

.Where(Function(x2) x2.price > x1.price).Count(Function(x2) x2. price IsNot Nothing) + 1})

TopPage

ファイル名 No63.linq

説明 ORDER BY 句で選択リストに含まれないカラム名を指定する(2)

T-SQL SELECT t1.title_id, t1.price,

(SELECT COUNT(t2.price) FROM titles AS t2

WHERE t2.price > t1.price) + 1 AS rank FROM titles as t1

ORDER BY pub_id LINQ コード /* LINQ to SQL と同一 */

titles _

.OrderBy(Function(x1) x1.pub_id) _ .Select(Function(x1) New With { _ x1.title_id, _

x1.price, _ .rank = titles _

.Where(Function(x2) x2.price > x1.price).Count(Function(x2) x2. price IsNot Nothing) + 1})

TopPage

ファイル名 No75.linq

説明 集合演算に ORDER BY 句を使用する

T-SQL SELECT au_id, title_id FROM titleauthors WHERE au_ord = 1 UNION

SELECT au_id, title_id FROM titleauthors WHERE au_ord <> 1 ORDER BY title_id LINQ コード /* LINQ to SQL と同一 */ titleauthors _ .Where(Function(x1) x1.au_ord = 1) _ .Select(Function(x1) New With { _ x1.au_id, _

x1.title_id}) _ .Union(titleauthors _

(30)

.Select(Function(x2) New With { _ x2.au_id, _

x2.title_id})) _ .OrderBy(Function(t) t.title_id)

TopPage

参照

関連したドキュメント

[r]

基本目標4 基本計画推 進 のための区政 運営.

(2) 輸入郵便物が法第 69 条の 11 第 1 項第 7 号に規定する公安若しくは風俗 を害すべき物品、同項第 8 号に規定する児童ポルノ、同項第

105 の2―2 法第 105 条の2《輸入者に対する調査の事前通知等》において準 用する国税通則法第 74 条の9から第 74 条の

(4) 鉄道財団等の財団とは、鉄道抵当法(明治 38 年法律第 53 号)、工場抵 当法(明治 38 年法律第 54 号)、鉱業抵当法(明治 38 年法律第 55 号)、軌道

61 の4-8 輸入品に対する内国消費税の徴収等に関する法律(昭和 30 年法律 第 37 号)第 16 条第1項又は第2項に該当する貨物についての同条第

Item number(as necessary); Marks and numbers ; Number and kind of packages; Description of good(s); HS tariff classification number」. の欄

China Council for the Promotion of International Trade (CCPIT) – China Chamber of International Commerce (CCOIC). Chambre de Commerce et d'Industrie de Cote