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

関数サンプル2

N/A
N/A
Protected

Academic year: 2021

シェア "関数サンプル2"

Copied!
48
0
0

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

全文

(1)

SQLCompiler for LINQ(VB)

のサンプル

(LINQPad 用 LINQ to Entities 関数サンプル 2)

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

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

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

テーブル名が異なるもの

・employee → employees

・royshed → roysheds

・titleauthor → titleauthors

カラム名が異なるもの

・discounts.discount → discounts.discount1

・titles.title → titles.title1

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

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

<一覧表>

ファイル名 関数名 引数の説明 リンク

No13.linq COUNT NULL 許容(money 型) 表 13

No14.linq DATEADD 日付要素 = day,

加算値 = 数値リテラル, 時間 = NULL 禁止(datetime 型)

表 14

No15.linq DATEADD 日付要素 = day,

加算値 = 数値リテラル, 時間 = 文字列リテラルの時間

表 15

No15_2.linq DATEADD 日付要素 = day,

加算値 = NULL 禁止(int 型), 時間 = NULL 禁止(datetime 型)

表 15_2

No15_3.linq DATEADD 日付要素 = day,

加算値 = NULL 許容(int 型), 時間 = NULL 禁止(datetime 型)

表 15_3

No15_4.linq DATEADD (Northwind データベース)日付要素 = day, 加算値 = NULL 禁止(int 型),

時間 = NULL 許容(datetime 型)

表 15_4

No15_5.linq DATEADD (Northwind データベース)日付要素 = day, 加算値 = NULL 許容(int 型),

時間 = NULL 許容(datetime 型)

表 15_5

No15_6.linq DATEADD 日付要素 = month, 加算値 = 数値リテラル, 時間 = NULL 禁止(datetime 型)

表 15_6

No15_7.linq DATEADD 日付要素 = year, 加算値 = 数値リテラル, 時間 = NULL 禁止(datetime 型)

表 15_7

(2)

No16.linq DATEDIFF 日付要素 = year,

開始時間 = NULL 禁止(datetime 型), 終了時間 = 文字列リテラルの時間

表 16

No16_2.linq DATEDIFF 日付要素 = year,

開始時間 = NULL 禁止(datetime 型), 終了時間 = GETDATE()関数

表 16_2

No16_3.linq DATEDIFF (Northwind データベース)日付要素 = year, 開始時間 = NULL 許容(datetime 型),

終了時間 = GETDATE()関数

表 16_3

No16_4.linq DATEDIFF (Northwind データベース)日付要素 = year, 開始時間 = GETDATE()関数,

終了時間 = NULL 許容(datetime 型)

表 16_4

No16_5.linq DATEDIFF (Northwind データベース)日付要素 = year, 開始時間 = NULL 許容(datetime 型),

終了時間 = NULL 許容(datetime 型)

表 16_5

No16_6.linq DATEDIFF 日付要素 = month,

開始時間 = NULL 禁止(datetime 型), 終了時間 = 文字列リテラルの時間

表 16_6

No16_7.linq DATEDIFF 日付要素 = day,

開始時間 = NULL 禁止(datetime 型), 終了時間 = 文字列リテラルの時間

表 16_7

No16_8.linq DATEDIFF (Northwind データベース)日付要素 = month, 開始時間 = NULL 許容(datetime 型),

終了時間 = GETDATE()関数

表 16_8

No17.linq DATENAME 日付要素 = month, 時間 = NULL 禁止(datetime 型) 表 17 No18.linq DATENAME 日付要素 = month, 時間 = 文字列リテラルの時間 表 18 No18_2.linq DATENAME 日付要素 = year, 時間 = NULL 禁止(datetime 型) 表 18_2 No18_3.linq DATENAME 日付要素 = day, 時間 = NULL 禁止(datetime 型) 表 18_3 No18_4.linq DATENAME (Northwind データベース)日付要素 = month,

時間 = NULL 許容(datetime 型)

表 18_4 No18_5.linq DATENAME (Northwind データベース)日付要素 = year,

時間 = NULL 許容(datetime 型)

表 18_5 No18_6.linq DATENAME (Northwind データベース)日付要素 = day,

時間 = NULL 許容(datetime 型)

表 18_6 No19.linq DATEPART 日付要素 = month, 時間 = NULL 禁止(datetime 型) 表 19 No20.linq DATEPART 日付要素 = month, 時間 = 文字列リテラルの時間 表 20 No20_2.linq DATEPART 日付要素 = year, 時間 = NULL 禁止(datetime 型) 表 20_2 No20_3.linq DATEPART 日付要素 = day, 時間 = NULL 禁止(datetime 型) 表 20_3 No20_4.linq DATEPART (Northwind データベース)日付要素 = month,

時間 = NULL 許容(datetime 型)

表 20_4

No21.linq DAY NULL 禁止(datetime 型) 表 21

No22.linq DAY 文字列リテラルの時間 表 22

(3)

No23.linq FLOOR NULL 許容(money 型) 表 23 No23_2.linq FLOOR NULL 禁止(decimal(4, 2)型) 表 23_2

No24.linq GETDATE なし 表 24

No25.linq ISDATE NULL 禁止(datetime 型) 表 25

No25_2.linq ISDATE (Northwind データベース)NULL 許容(datetime 型) 表 25_2 No25_3.linq ISDATE 時間形式の文字列リテラルと非時間形式の文字列 表 25_3

No25_4.linq ISDATE NULL 禁止(char 型) 表 25_4

No25_5.linq ISDATE 時間形式の整数リテラル 表 25_5

No25_6.linq ISDATE NULL 許容(int 型) 表 25_6

No25_7.linq ISDATE NULL 許容(money 型) 表 25_7

No26.linq ISNULL NULL 許容(money 型)が NULL なら 0 に置換する及び NULL 許容(int 型)が NULL なら 0 に置換する

表 26 No26_2.linq ISNULL No26.linq で値が NULL でないものを含むようにする 表 26_2 No27.linq ISNUMERIC NULL 許容(money 型)と NULL 許容(int 型) 表 27 No27_2.linq ISNUMERIC NULL 禁止(decimal(4, 2)型) 表 27_2

No27_3.linq ISNUMERIC NULL 許容(char 型) 表 27_3

No27_4.linq ISNUMERIC NULL 禁止(char 型) 表 27_4

No27_5.linq ISNUMERIC NULL 禁止(char 型)と小数部を持つ文字列リテラルの数値 表 27_5 No27_6.linq ISNUMERIC NULL 禁止(char 型)と NULL 禁止(datetime 型) 表 27_6 No28.linq LEFT NULL 禁止(varchar 型)から 2 文字分 表 28 No28_2.linq LEFT NULL 許容(char 型)から 2 文字分 表 28_2 No28_3.linq LEFT NULL 禁止(varchar 型)から NULL 許容(smallint 型)文字分 表 28_3 No28_4.linq LEFT NULL 許容(char 型)から NULL 許容(smallint 型)文字分 表 28_4

No29.linq LEFT 文字列リテラル 表 29

No30.linq LEN NULL 禁止(char 型) 表 30

No30_2.linq LEN NULL 許容(char 型) 表 30_2

No31.linq LOWER NULL 禁止(varchar 型) 表 31

No31_2.linq LOWER NULL 許容(char 型) 表 31_2

No32.linq LTRIM NULL 禁止(varchar 型) 表 32

No32_2.linq LTRIM NULL 許容(char 型) 表 32_2

No33.linq MAX NULL 許容(money 型) 表 33

No34.linq MIN NULL 許容(money 型) 表 34

No35.linq MONTH NULL 禁止(datetime 型) 表 35

No36.linq MONTH 文字列リテラルで表した時間 表 36

No36_2.linq MONTH (Northwind データベース)NULL 許容(datetime 型) 表 36_2 No37.linq NULLIF NULL 禁止(tinyint 型)と NULL 禁止(tinyint 型)を比較する 表 37 No37_2.linq NULLIF NULL 禁止(decimal(4, 2)型)と小数部を持つ数値リテラル

を比較する

表 37_2

(4)

No37_3.linq NULLIF NULL 禁止(char 型)と文字列リテラルを比較する 表 37_3 No37_4.linq NULLIF No37_2.linq の引数を入れ替える 表 37_4 No37_5.linq NULLIF No37_3.linq の引数を入れ替える 表 37_5 No37_6.linq NULLIF NULL 許容(int 型)と整数リテラルを比較する 表 37_6 No37_7.linq NULLIF NULL 許容(money 型)と小数部を持つ数値リテラルを比較す

表 37_7 No37_8.linq NULLIF NULL 許容(money 型)と NULL 許容(money 型)を比較する 表 37_8 No37_9.linq NULLIF NULL 許容(char 型)と文字列リテラルを比較する 表 37_9 No37_10.linq NULLIF (Northwind データベース)NULL 許容(datetime 型)と NULL

許容(datetime 型)を比較する

表 37_10 No37_11.linq NULLIF No37_10.linq の引数を入れ替える 表 37_11 No38.linq REPLACE 対象文字列 = NULL 禁止(char 型),

検索文字列 = 文字列リテラル, 置換文字列 = 文字列リテラル

表 38

No38_2.linq REPLACE 対象文字列 = NULL 許容(char 型), 検索文字列 = 文字列リテラル, 置換文字列 = 文字列リテラル

表 38_2

No38_3.linq REPLACE 対象文字列 = NULL 禁止(varchar 型), 検索文字列 = NULL 許容(char 型), 置換文字列 = 文字列リテラル

表 38_3

No38_4.linq REPLACE 対象文字列 = NULL 禁止(varchar 型), 検索文字列 = 文字列リテラル, 置換文字列 = NULL 許容(char 型)

表 38_4

No39.linq REPLICATE NULL 禁止(char 型)を整数リテラル回数繰り返す 表 39 No39_2.linq REPLICATE NULL 禁止(varchar 型)を NULL 禁止(smallint 型)回数繰り

返す

表 39_2 No39_3.linq REPLICATE NULL 許容(char 型)を整数リテラル回数繰り返す 表 39_3 No39_4.linq REPLICATE NULL 禁止(varchar 型)を NULL 許容(int 型)回数繰り返す 表 39_4 No39_5.linq REPLICATE NULL 許容(char 型)を NULL 許容(int 型)回数繰り返す 表 39_5

No40.linq REVERSE NULL 禁止(varchar 型) 表 40

No40_2.linq REVERSE NULL 許容(varchar 型) 表 40_2 No41.linq RIGHT NULL 禁止(varchar 型)から整数リテラル文字分 表 41 No41_2.linq RIGHT NULL 許容(char 型)から整数リテラル文字分 表 41_2 No41_3.linq RIGHT NULL 許容(char 型)から NULL 許容(smallint 型)文字分 表 41_3 No42.linq ROUND 対象数 = NULL 許容(money 型),

小数桁 = 整数リテラル

表 42 No42_2.linq ROUND 対象数 = NULL 禁止(decimal(4, 2)型),

小数桁 = 整数リテラル

表 42_2 No42_3.linq ROUND 対象数 = NULL 禁止(decimal(4, 2)型),

小数桁 = NULL 許容(int 型)

表 42_3 No42_4.linq ROUND 対象数 = NULL 許容(money 型),

小数桁 = NULL 許容(int 型)

表 42_4

(5)

No43.linq RTRIM NULL 禁止(varchar 型) 表 43

No43_2.linq RTRIM NULL 許容(char 型) 表 43_2

No44.linq SIGN NULL 許容(money 型) 表 44

No44_2.linq SIGN NULL 禁止(decimal(4, 2)型) 表 44_2

No45.linq SPACE 整数リテラル 表 45

No45_2.linq SPACE NULL 許容(int 型) 表 45_2

No46.linq STR 対象数 = NULL 許容(money 型), 小数桁 = 整数リテラル

表 46 No46_2.linq STR No46.linq で値が NULL を含むようにする 表 46_2 No46_3.linq STR 対象数 = NULL 禁止(decimal(4, 2)型),

小数桁 = 整数リテラル

表 46_3 No46_4.linq STR 対象数 = NULL 禁止(decimal(4, 2)型),

小数桁 = NULL 許容(int 型)

表 46_4 No46_6.linq STR 対象数 = NULL 禁止(decimal(4, 2)型),

小数桁 = NULL 許容(int 型)

表 46_6 No47.linq STUFF 対象文字列 = NULL 禁止(char 型),

対象位置 = 整数リテラル, 削除文字数 = 整数リテラル, 挿入文字列 = 文字列リテラル

表 47

No47_2.linq STUFF 対象文字列 = NULL 許容(char 型), 対象位置 = 整数リテラル,

削除文字数 = 整数リテラル, 挿入文字列 = 文字列リテラル

表 47_2

No47_3.linq STUFF 対象文字列 = NULL 禁止(varchar 型), 対象位置 = NULL 許容(int 型), 削除文字数 = 整数リテラル, 挿入文字列 = 文字列リテラル

表 47_3

No47_4.linq STUFF 対象文字列 = NULL 禁止(varchar 型), 対象位置 = 整数リテラル,

削除文字数 = NULL 許容(int 型), 挿入文字列 = 文字列リテラル

表 47_4

No47_5.linq STUFF 対象文字列 = NULL 禁止(char 型), 対象位置 = NULL 許容(int 型), 削除文字数 = NULL 許容(int 型), 挿入文字列 = 文字列リテラル

表 47_5

No47_6.linq STUFF 対象文字列 = NULL 禁止(char 型), 対象位置 = 整数リテラル,

削除文字数 = 整数リテラル, 挿入文字列 = NULL 許容(char 型)

表 47_6

No48.linq SUBSTRING 対象文字列 = NULL 禁止(char 型), 開始位置 = 整数リテラル,

文字数 = 整数リテラル

表 48

No48_2.linq SUBSTRING 対象文字列 = NULL 許容(char 型), 開始位置 = 整数リテラル,

文字数 = 整数リテラル

表 48_2

(6)

No48_3.linq SUBSTRING 対象文字列 = NULL 禁止(varchar 型), 開始位置 = NULL 許容(int 型), 文字数 = 整数リテラル

表 48_3

No48_4.linq SUBSTRING 対象文字列 = NULL 禁止(char 型), 開始位置 = 整数リテラル,

文字数 = NULL 許容(int 型)

表 48_4

No48_5.linq SUBSTRING 対象文字列 = NULL 禁止(char 型), 開始位置 = NULL 許容(int 型), 文字数 = NULL 許容(int 型)

表 48_5

No49.linq SUM NULL 許容(money 型) 表 49

No50.linq UPPER NULL 禁止(varchar 型) 表 50

No50_2.linq UPPER NULL 許容(char 型) 表 50_2

No51.linq YEAR NULL 禁止(datetime 型) 表 51

No52.linq YEAR 文字列リテラルで表した時間 表 52

No52_2.linq YEAR (Northwind データベース)NULL 許容(datetime 型) 表 52_2

TopPage

ファイル名 No13.linq

関数名 COUNT

引数の説明 NULL 許容(money 型)

T-SQL SELECT pub_id, COUNT(price) AS cnt FROM titles

GROUP BY pub_id

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

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

.pub_id = g1.Key.grKey1, _

.cnt = g1.Count(Function(x1) x1.price IsNot Nothing)})

TopPage

ファイル名 No14.linq

関数名 DATEADD

引数の説明 日付要素 = day, 加算値 = 数値リテラル, 時間 = NULL 禁止(datetime 型) T-SQL SELECT pub_id, pubdate, DATEADD(day, 1, pubdate) AS tomorrow

FROM titles

WHERE pub_id = '0736' LINQ コード /* LINQ to SQL と異なる */

titles _

.Where(Function(x1) x1.pub_id = "0736") _ .Select(Function(x1) New With { _

x1.pub_id, _ x1.pubdate, _

(7)

.tomorrow = System.Data.Objects.SqlClient.SqlFunctions.DateAdd("day", 1, x 1.pubdate)})

TopPage

ファイル名 No15.linq 関数名 DATEADD 引数の説明 日付要素 = day, 加算値 = 数値リテラル, 時間 = 文字列リテラルの時間

T-SQL SELECT pub_id, pubdate, DATEADD(day, 1, '1991-06-30') AS tomorrow FROM titles

WHERE pub_id = '0736' LINQ コード /* LINQ to SQL と異なる */

titles _

.Where(Function(x1) x1.pub_id = "0736") _ .Select(Function(x1) New With { _

x1.pub_id, _ x1.pubdate, _ .tomorrow = System.Data.Objects.SqlClient.SqlFunctions.DateAdd("day", 1, N ew Date(1991, 06, 30))})

TopPage

ファイル名 No15_2.linq 関数名 DATEADD

引数の説明 日付要素 = day, 加算値 = NULL 禁止(int 型), 時間 = NULL 禁止(datetime 型) T-SQL SELECT pubdate, title_id, DATEADD(day, LEN(title_id), pubdate) AS value

FROM titles

WHERE title_id LIKE 'MC%' LINQ コード /* LINQ to SQL と異なる */

titles _

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

x1.pubdate, _ x1.title_id, _

.value = System.Data.Objects.SqlClient.SqlFunctions.DateAdd("day", (x1.tit le_id).Length, x1.pubdate)})

TopPage

ファイル名 No15_3.linq

関数名 DATEADD

引数の説明 日付要素 = day, 加算値 = NULL 許容(int 型), 時間 = NULL 禁止(datetime 型) T-SQL SELECT pubdate, royalty, DATEADD(day, royalty, pubdate) AS value

FROM titles

WHERE title_id LIKE 'MC%' LINQ コード /* LINQ to SQL と異なる */

(8)

titles _

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

x1.pubdate, _ x1.royalty, _

.value = (System.Data.Objects.SqlClient.SqlFunctions.DateAdd("day", x1.roy alty, x1.pubdate))})

TopPage

ファイル名 No15_4.linq

関数名 DATEADD

引数の説明 (Northwind データベース)日付要素 = day, 加算値 = NULL 禁止(int 型), 時間 = NULL 許容(datetime 型)

T-SQL SELECT ShippedDate, OrderID, DATEADD(day, OrderID, ShippedDate) AS value FROM Orders

WHERE OrderID = 11008 OR OrderID = 11009 LINQ コード /* LINQ to SQL と異なる */

Orders _

.Where(Function(x1) x1.OrderID = 11008 OrElse x1.OrderID = 11009) _ .Select(Function(x1) New With { _

x1.ShippedDate, _ x1.OrderID, _

.value = (System.Data.Objects.SqlClient.SqlFunctions.DateAdd("day", x1.Ord erID, x1.ShippedDate))})

TopPage

ファイル名 No15_5.linq

関数名 DATEADD

引数の説明 (Northwind データベース)日付要素 = day, 加算値 = NULL 許容(int 型), 時間 = NULL 許容(datetime 型)

T-SQL SELECT ShippedDate, ShipVia, DATEADD(day, ShipVia, ShippedDate) AS value FROM Orders

WHERE OrderID = 11008 OR OrderID = 11009 LINQ コード /* LINQ to SQL と異なる */

Orders _

.Where(Function(x1) x1.OrderID = 11008 OrElse x1.OrderID = 11009) _ .Select(Function(x1) New With { _

x1.ShippedDate, _ x1.ShipVia, _

.value = (System.Data.Objects.SqlClient.SqlFunctions.DateAdd("day", x1.Shi pVia, x1.ShippedDate))})

TopPage

(9)

関数名 DATEADD

引数の説明 日付要素 = month, 加算値 = 数値リテラル, 時間 = NULL 禁止(datetime 型) T-SQL SELECT pub_id, pubdate, DATEADD(month, 1, pubdate) AS tomorrow

FROM titles

WHERE pub_id = '0736' LINQ コード /* LINQ to SQL と異なる */

titles _

.Where(Function(x1) x1.pub_id = "0736") _ .Select(Function(x1) New With { _

x1.pub_id, _ x1.pubdate, _ .tomorrow = System.Data.Objects.SqlClient.SqlFunctions.DateAdd("month", 1, x1.pubdate)})

TopPage

ファイル名 No15_7.linq 関数名 DATEADD

引数の説明 日付要素 = year, 加算値 = 数値リテラル, 時間 = NULL 禁止(datetime 型) T-SQL SELECT pub_id, pubdate, DATEADD(year, 1, pubdate) AS tomorrow

FROM titles

WHERE pub_id = '0736' LINQ コード /* LINQ to SQL と異なる */

titles _

.Where(Function(x1) x1.pub_id = "0736") _ .Select(Function(x1) New With { _

x1.pub_id, _ x1.pubdate, _ .tomorrow = System.Data.Objects.SqlClient.SqlFunctions.DateAdd("year", 1, x1.pubdate)})

TopPage

ファイル名 No16.linq 関数名 DATEDIFF

引数の説明 日付要素 = year, 開始時間 = NULL 禁止(datetime 型), 終了時間 = 文字列リテラ ルの時間

T-SQL SELECT ord_date, DATEDIFF(year, ord_date, '1990-01-01') AS diff FROM sales

WHERE stor_id = '6380' LINQ コード /* LINQ to SQL と異なる */

sales _

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

x1.ord_date, _

.diff = System.Data.Objects.SqlClient.SqlFunctions.DateDiff("year", x1.ord _date, New Date(1990, 01, 01))})

(10)

TopPage

ファイル名 No16_2.linq

関数名 DATEDIFF

引数の説明 日付要素 = year, 開始時間 = NULL 禁止(datetime 型), 終了時間 = GETDATE()関 数

T-SQL SELECT pubdate, GETDATE() AS today, DATEDIFF(year, pubdate, GETDATE()) AS diff

FROM titles

WHERE title_id LIKE 'MC%' LINQ コード /* LINQ to SQL と異なる */

titles _

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

x1.pubdate, _

.today = Date.Now, _

.diff = System.Data.Objects.SqlClient.SqlFunctions.DateDiff("year", x1.pub date, Date.Now)})

TopPage

ファイル名 No16_3.linq

関数名 DATEDIFF

引数の説明 (Northwind データベース)日付要素 = year, 開始時間 = NULL 許容(datetime 型), 終了時間 = GETDATE()関数

T-SQL SELECT ShippedDate, GETDATE() AS today, DATEDIFF(year, ShippedDate,

GETDATE()) AS value FROM Orders

WHERE OrderID = 11008 OR OrderID = 11009 LINQ コード /* LINQ to SQL と異なる */

Orders _

.Where(Function(x1) x1.OrderID = 11008 OrElse x1.OrderID = 11009) _ .Select(Function(x1) New With { _

x1.ShippedDate, _ .today = Date.Now, _ .value = (System.Data.Objects.SqlClient.SqlFunctions.DateDiff("year", x1.S hippedDate, Date.Now))})

TopPage

ファイル名 No16_4.linq 関数名 DATEDIFF

引数の説明 (Northwind データベース)日付要素 = year, 開始時間 = GETDATE()関数, 終了時間 = NULL 許容(datetime 型)

T-SQL SELECT ShippedDate, GETDATE() AS today, DATEDIFF(year, GETDATE(), ShippedDate) AS value

(11)

FROM Orders

WHERE OrderID = 11008 OR OrderID = 11009 LINQ コード /* LINQ to SQL と異なる */

Orders _

.Where(Function(x1) x1.OrderID = 11008 OrElse x1.OrderID = 11009) _ .Select(Function(x1) New With { _

x1.ShippedDate, _ .today = Date.Now, _

.value = (System.Data.Objects.SqlClient.SqlFunctions.DateDiff("year", Date. Now, x1.ShippedDate))})

TopPage

ファイル名 No16_5.linq

関数名 DATEDIFF

引数の説明 (Northwind データベース)日付要素 = year, 開始時間 = NULL 許容(datetime 型), 終了時間 = NULL 許容(datetime 型)

T-SQL SELECT ShippedDate, RequiredDate, DATEDIFF(year, ShippedDate, RequiredDate) AS value

FROM Orders

WHERE OrderID = 11008 OR OrderID = 11009 LINQ コード /* LINQ to SQL と異なる */

Orders _

.Where(Function(x1) x1.OrderID = 11008 OrElse x1.OrderID = 11009) _ .Select(Function(x1) New With { _

x1.ShippedDate, _ x1.RequiredDate, _ .value = (System.Data.Objects.SqlClient.SqlFunctions.DateDiff("year", x1.S hippedDate, x1.RequiredDate))})

TopPage

ファイル名 No16_6.linq 関数名 DATEDIFF

引数の説明 日付要素 = month, 開始時間 = NULL 禁止(datetime 型), 終了時間 = 文字列リテ ラルの時間

T-SQL SELECT ord_date, DATEDIFF(month, ord_date, '1990-01-01') AS diff FROM sales

WHERE stor_id = '6380' LINQ コード /* LINQ to SQL と異なる */

sales _

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

x1.ord_date, _

.diff = System.Data.Objects.SqlClient.SqlFunctions.DateDiff("month", x1.or d_date, New Date(1990, 01, 01))})

(12)

ファイル名 No16_7.linq

関数名 DATEDIFF

引数の説明 日付要素 = day, 開始時間 = NULL 禁止(datetime 型), 終了時間 = 文字列リテラ ルの時間

T-SQL SELECT ord_date, DATEDIFF(day, ord_date, '1990-01-01') AS diff FROM sales

WHERE stor_id = '6380' LINQ コード /* LINQ to SQL と異なる */

sales _

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

x1.ord_date, _

.diff = System.Data.Objects.SqlClient.SqlFunctions.DateDiff("day", x1.ord_ date, New Date(1990, 01, 01))})

TopPage

ファイル名 No16_8.linq

関数名 DATEDIFF

引数の説明 (Northwind データベース)日付要素 = month, 開始時間 = NULL 許容(datetime 型), 終了時間 = GETDATE()関数

T-SQL SELECT ShippedDate, GETDATE() AS today, DATEDIFF(month, ShippedDate,

GETDATE()) AS value FROM Orders

WHERE OrderID = 11008 OR OrderID = 11009 LINQ コード /* LINQ to SQL と異なる */

Orders _

.Where(Function(x1) x1.OrderID = 11008 OrElse x1.OrderID = 11009) _ .Select(Function(x1) New With { _

x1.ShippedDate, _ .today = Date.Now, _ .value = (System.Data.Objects.SqlClient.SqlFunctions.DateDiff("month", x1. ShippedDate, Date.Now))})

TopPage

ファイル名 No17.linq 関数名 DATENAME

引数の説明 日付要素 = month, 時間 = NULL 禁止(datetime 型) T-SQL SELECT ord_date, DATENAME(month, ord_date) AS namae

FROM sales

WHERE stor_id = '6380' LINQ コード /* LINQ to SQL と異なる */

sales _

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

(13)

x1.ord_date, _

.namae = System.Data.Objects.SqlClient.SqlFunctions.DateName("month", x1.o rd_date)})

TopPage

ファイル名 No18.linq

関数名 DATENAME

引数の説明 日付要素 = month, 時間 = 文字列リテラルの時間

T-SQL SELECT ord_date, DATENAME(month, '1994-10-14') AS namae FROM sales

WHERE stor_id = '6380' LINQ コード /* LINQ to SQL と異なる */

sales _

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

x1.ord_date, _

.namae = System.Data.Objects.SqlClient.SqlFunctions.DateName("month", New Date(1994, 10, 14))})

TopPage

ファイル名 No18_2.linq

関数名 DATENAME

引数の説明 日付要素 = year, 時間 = NULL 禁止(datetime 型) T-SQL SELECT ord_date, DATENAME(year, ord_date) AS namae

FROM sales

WHERE stor_id = '6380' LINQ コード /* LINQ to SQL と異なる */

sales _

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

x1.ord_date, _

.namae = System.Data.Objects.SqlClient.SqlFunctions.DateName("year", x1.or d_date)})

TopPage

ファイル名 No18_3.linq

関数名 DATENAME

引数の説明 日付要素 = day, 時間 = NULL 禁止(datetime 型) T-SQL SELECT ord_date, DATENAME(day, ord_date) AS namae

FROM sales

WHERE stor_id = '6380' LINQ コード /* LINQ to SQL と異なる */

(14)

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

x1.ord_date, _

.namae = System.Data.Objects.SqlClient.SqlFunctions.DateName("day", x1.ord _date)})

TopPage

ファイル名 No18_4.linq

関数名 DATENAME

引数の説明 (Northwind データベース)日付要素 = month, 時間 = NULL 許容(datetime 型) T-SQL SELECT ShippedDate, DATENAME(month, ShippedDate) AS value

FROM Orders

WHERE OrderID = 11008 OR OrderID = 11009 LINQ コード /* LINQ to SQL と異なる */

Orders _

.Where(Function(x1) x1.OrderID = 11008 OrElse x1.OrderID = 11009) _ .Select(Function(x1) New With { _

x1.ShippedDate, _ .value = (System.Data.Objects.SqlClient.SqlFunctions.DateName("month", x1. ShippedDate))})

TopPage

ファイル名 No18_5.linq 関数名 DATENAME

引数の説明 (Northwind データベース)日付要素 = year, 時間 = NULL 許容(datetime 型) T-SQL SELECT ShippedDate, DATENAME(year, ShippedDate) AS value

FROM Orders

WHERE OrderID = 11008 OR OrderID = 11009 LINQ コード /* LINQ to SQL と異なる */

Orders _

.Where(Function(x1) x1.OrderID = 11008 OrElse x1.OrderID = 11009) _ .Select(Function(x1) New With { _

x1.ShippedDate, _ .value = (System.Data.Objects.SqlClient.SqlFunctions.DateName("year", x1.S hippedDate))})

TopPage

ファイル名 No18_6.linq 関数名 DATENAME

引数の説明 (Northwind データベース)日付要素 = day, 時間 = NULL 許容(datetime 型) T-SQL SELECT ShippedDate, DATENAME(day, ShippedDate) AS value

FROM Orders

(15)

LINQ コード /* LINQ to SQL と異なる */ Orders _

.Where(Function(x1) x1.OrderID = 11008 OrElse x1.OrderID = 11009) _ .Select(Function(x1) New With { _

x1.ShippedDate, _ .value = (System.Data.Objects.SqlClient.SqlFunctions.DateName("day", x1.Sh ippedDate))})

TopPage

ファイル名 No19.linq 関数名 DATEPART

引数の説明 日付要素 = month, 時間 = NULL 禁止(datetime 型) T-SQL SELECT ord_date, DATEPART(month, ord_date) AS namae

FROM sales

WHERE stor_id = '6380' LINQ コード /* LINQ to SQL と異なる */

sales _

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

x1.ord_date, _

.namae = System.Data.Objects.SqlClient.SqlFunctions.DatePart("month", x1.o rd_date)})

TopPage

ファイル名 No20.linq

関数名 DATEPART

引数の説明 日付要素 = month, 時間 = 文字列リテラルの時間

T-SQL SELECT ord_date, DATEPART(month, '1994-10-14') AS namae FROM sales

WHERE stor_id = '6380' LINQ コード /* LINQ to SQL と異なる */

sales _

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

x1.ord_date, _

.namae = System.Data.Objects.SqlClient.SqlFunctions.DatePart("month", New Date(1994, 10, 14))})

TopPage

ファイル名 No20_2.linq

関数名 DATEPART

引数の説明 日付要素 = year, 時間 = NULL 禁止(datetime 型) T-SQL SELECT ord_date, DATEPART(year, ord_date) AS namae

(16)

FROM sales

WHERE stor_id = '6380' LINQ コード /* LINQ to SQL と異なる */

sales _

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

x1.ord_date, _

.namae = System.Data.Objects.SqlClient.SqlFunctions.DatePart("year", x1.or d_date)})

TopPage

ファイル名 No20_3.linq

関数名 DATEPART

引数の説明 日付要素 = day, 時間 = NULL 禁止(datetime 型) T-SQL SELECT ord_date, DATEPART(day, ord_date) AS namae

FROM sales

WHERE stor_id = '6380' LINQ コード /* LINQ to SQL と異なる */

sales _

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

x1.ord_date, _

.namae = System.Data.Objects.SqlClient.SqlFunctions.DatePart("day", x1.ord _date)})

TopPage

ファイル名 No20_4.linq

関数名 DATEPART

引数の説明 (Northwind データベース)日付要素 = month, 時間 = NULL 許容(datetime 型) T-SQL SELECT ShippedDate, DATEPART(month, ShippedDate) AS value

FROM Orders

WHERE OrderID = 11008 OR OrderID = 11009 LINQ コード /* LINQ to SQL と異なる */

Orders _

.Where(Function(x1) x1.OrderID = 11008 OrElse x1.OrderID = 11009) _ .Select(Function(x1) New With { _

x1.ShippedDate, _ .value = (System.Data.Objects.SqlClient.SqlFunctions.DatePart("month", x1. ShippedDate))})

TopPage

ファイル名 No21.linq 関数名 DAY

(17)

引数の説明 NULL 禁止(datetime 型)

T-SQL SELECT ord_date, DAY(ord_date) AS hinichi FROM sales

WHERE stor_id = '6380' LINQ コード /* LINQ to SQL と異なる */

sales _

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

x1.ord_date, _

.hinichi = System.Data.Objects.SqlClient.SqlFunctions.DatePart("day", x1.o rd_date)})

TopPage

ファイル名 No22.linq

関数名 DAY

引数の説明 文字列リテラルの時間

T-SQL SELECT ord_date, DAY('1994-09-14') AS hinichi FROM sales

WHERE stor_id = '6380' LINQ コード /* LINQ to SQL と異なる */

sales _

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

x1.ord_date, _

.hinichi = System.Data.Objects.SqlClient.SqlFunctions.DatePart("day", New Date(1994, 09, 14))})

TopPage

ファイル名 No22_2.linq

関数名 DAY

引数の説明 (Northwind データベース)NULL 許容(datetime 型) T-SQL SELECT ShippedDate, DAY(ShippedDate) AS value

FROM Orders

WHERE OrderID = 11008 OR OrderID = 11009 LINQ コード /* LINQ to SQL と異なる */

Orders _

.Where(Function(x1) x1.OrderID = 11008 OrElse x1.OrderID = 11009) _ .Select(Function(x1) New With { _

x1.ShippedDate, _

.value = (System.Data.Objects.SqlClient.SqlFunctions.DatePart("day", x1.Sh ippedDate))})

TopPage

(18)

関数名 FLOOR

引数の説明 NULL 許容(money 型)

T-SQL SELECT price, FLOOR(price) AS price1 FROM titles

WHERE pub_id = '0736' LINQ コード /* LINQ to SQL と異なる */

titles _

.Where(Function(x1) x1.pub_id = "0736") _ .Select(Function(x1) New With { _

x1.price, _

.price1 = (CType(Math.Floor(CDec(x1.price)), Decimal?))})

TopPage

ファイル名 No23_2.linq

関数名 FLOOR

引数の説明 NULL 禁止(decimal(4, 2)型)

T-SQL SELECT discount1, FLOOR(discount1) AS price FROM discounts

LINQ コード /* LINQ to SQL と異なる(discount1 のみ) */ discounts _

.Select(Function(x1) New With { _ x1.discount1, _ .price = Math.Floor(x1.discount1)})

TopPage

ファイル名 No24.linq 関数名 GETDATE 引数の説明 なし

T-SQL SELECT ord_date, GETDATE() AS today FROM sales

WHERE stor_id = '6380' LINQ コード /* LINQ to SQL と異なる */

sales _

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

x1.ord_date, _ .today = System.Data.Objects.SqlClient.SqlFunctions.GetDate()})

TopPage

ファイル名 No25.linq 関数名 ISDATE 引数の説明 NULL 禁止(datetime 型)

(19)

T-SQL SELECT ord_date, ISDATE(ord_date) AS daytime FROM sales WHERE stor_id = '6380' LINQ コード /* LINQ to SQL と同一 */ sales _ .Where(Function(x1) x1.stor_id = "6380") _ .Select(Function(x1) New With { _

x1.ord_date, _ .daytime = 1})

TopPage

ファイル名 No25_2.linq

関数名 ISDATE

引数の説明 (Northwind データベース)NULL 許容(datetime 型) T-SQL SELECT ShippedDate, ISDATE(ShippedDate) AS value

FROM Orders

WHERE OrderID = 11008 OR OrderID = 11009 LINQ コード /* LINQ to SQL と同一 */

Orders _

.Where(Function(x1) x1.OrderID = 11008 OrElse x1.OrderID = 11009) _ .Select(Function(x1) New With { _

x1.ShippedDate, _

.value = (If(x1.ShippedDate Is Nothing, 0, 1))})

TopPage

ファイル名 No25_3.linq

関数名 ISDATE

引数の説明 時間形式の文字列リテラルと非時間形式の文字列

T-SQL SELECT title_id, ISDATE('1900/01/01') AS isdate1, ISDATE(pub_id) AS isdate2

FROM titles

WHERE title_id like 'MC%' LINQ コード /* LINQ to SQL と異なる */

titles _

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

x1.title_id, _ .isdate1 = System.Data.Objects.SqlClient.SqlFunctions.IsDate("1900/01/01"), _ .isdate2 = System.Data.Objects.SqlClient.SqlFunctions.IsDate(x1.pub_id)})

TopPage

ファイル名 No25_4.linq 関数名 ISDATE

(20)

引数の説明 NULL 許容(char 型)

T-SQL SELECT stor_id, ISDATE(stor_id) AS isdate1 FROM discounts

LINQ コード /* LINQ to SQL と異なる */ discounts _

.Select(Function(x1) New With { _ x1.stor_id, _ .isdate1 = System.Data.Objects.SqlClient.SqlFunctions.IsDate(x1.stor_id)})

TopPage

ファイル名 No25_5.linq 関数名 ISDATE 引数の説明 時間形式の整数リテラル

T-SQL SELECT title_id, ISDATE(19000101) AS isdate1, ISDATE(19000132) AS isdate2 , ISDATE(1900) AS isdate3

FROM titles

WHERE title_id like 'MC%' LINQ コード /* LINQ to SQL と異なる */

titles _

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

x1.title_id, _ .isdate1 = System.Data.Objects.SqlClient.SqlFunctions.IsDate(System.Data.O bjects.SqlClient.SqlFunctions.StringConvert(CType((19000101), Decimal?))), _ .isdate2 = System.Data.Objects.SqlClient.SqlFunctions.IsDate(System.Data.O bjects.SqlClient.SqlFunctions.StringConvert(CType((19000132), Decimal?))), _ .isdate3 = System.Data.Objects.SqlClient.SqlFunctions.IsDate(System.Data.O bjects.SqlClient.SqlFunctions.StringConvert(CType((1900), Decimal?)))})

TopPage

ファイル名 No25_6.linq 関数名 ISDATE 引数の説明 NULL 許容(int 型)

T-SQL SELECT title_id, royalty, ISDATE(royalty) AS isdate1 FROM titles

WHERE title_id LIKE 'MC%' LINQ コード /* LINQ to SQL と異なる */

titles _

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

x1.title_id, _ x1.royalty, _

.isdate1 = System.Data.Objects.SqlClient.SqlFunctions.IsDate(System.Data.O bjects.SqlClient.SqlFunctions.StringConvert(CType((x1.royalty), Decimal?)))})

(21)

TopPage

ファイル名 No25_7.linq

関数名 ISDATE

引数の説明 NULL 許容(money 型)

T-SQL SELECT title_id, price, ISDATE(price) AS isdate1 FROM titles

WHERE title_id like 'MC%'

LINQ コード /* LINQ to SQL と異なる(LIKE 述語のみ) */ titles _

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

x1.title_id, _ x1.price, _ .isdate1 = 0})

TopPage

ファイル名 No26.linq 関数名 ISNULL

引数の説明 NULL 許容(money 型)が NULL なら 0 に置換する及び NULL 許容(int 型)が NULL なら 0 に置換する

T-SQL SELECT title_id, ISNULL(price, 0) AS price, ISNULL(royalty, 0) AS royalty FROM titles

WHERE title_id = 'MC3026' LINQ コード /* LINQ to SQL と同一 */

titles _

.Where(Function(x1) x1.title_id = "MC3026") _ .Select(Function(x1) New With { _

x1.title_id, _

.price = If(x1.price IsNot Nothing, x1.price, 0), _ .royalty = If(x1.royalty IsNot Nothing, x1.royalty, 0)})

TopPage

ファイル名 No26_2.linq

関数名 ISNULL

引数の説明 No26.linq で値が NULL でないものを含むようにする

T-SQL SELECT title_id, ISNULL(price, 0) AS price, ISNULL(royalty, 0) AS royalty FROM titles

WHERE title_id LIKE 'MC%'

LINQ コード /* LINQ to SQL と異なる(LIKE 述語のみ) */ titles _

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

x1.title_id, _

(22)

.royalty = If(x1.royalty IsNot Nothing, x1.royalty, 0)})

TopPage

ファイル名 No27.linq

関数名 ISNUMERIC

引数の説明 NULL 許容(money 型)と NULL 許容(int 型)

T-SQL SELECT title_id, ISNUMERIC(price) AS price, ISNUMERIC(royalty) AS royalty FROM titles

WHERE title_id = 'BU1032' LINQ コード /* LINQ to SQL と同一 */

titles _

.Where(Function(x1) x1.title_id = "BU1032") _ .Select(Function(x1) New With { _

x1.title_id, _

.price = (If(x1.price Is Nothing, 0, 1)), _ .royalty = (If(x1.royalty Is Nothing, 0, 1))})

TopPage

ファイル名 No27_2.linq

関数名 ISNUMERIC

引数の説明 NULL 禁止(decimal(4, 2)型)

T-SQL SELECT discount1, ISNUMERIC(discount1) AS value FROM discounts

LINQ コード /* LINQ to SQL と異なる(discount1 のみ) */ discounts _

.Select(Function(x1) New With { _ x1.discount1, _ .value = 1})

TopPage

ファイル名 No27_3.linq 関数名 ISNUMERIC 引数の説明 NULL 許容(char 型)

T-SQL SELECT stor_id, ISNUMERIC(stor_id) AS value FROM discounts

LINQ コード /* LINQ to SQL と異なる */ discounts _

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

.value = System.Data.Objects.SqlClient.SqlFunctions.IsNumeric(x1.stor_id)})

TopPage

(23)

ファイル名 No27_4.linq

関数名 ISNUMERIC

引数の説明 NULL 禁止(char 型)

T-SQL SELECT pub_id, ISNUMERIC(pub_id) AS value FROM employees

WHERE emp_id LIKE 'A%' LINQ コード /* LINQ to SQL と異なる */

employees _

.Where(Function(x1) (x1.emp_id).StarsWith("A")) _ .Select(Function(x1) New With { _

x1.pub_id, _ .value = System.Data.Objects.SqlClient.SqlFunctions.IsNumeric(x1.pub_id)})

TopPage

ファイル名 No27_5.linq 関数名 ISNUMERIC 引数の説明 NULL 禁止(char 型)と小数部を持つ文字列リテラルの数値

T-SQL SELECT pub_id, ISNUMERIC(pub_id) AS value1, isnumeric('12.3') AS value2 FROM employees

WHERE emp_id LIKE 'A%' LINQ コード /* LINQ to SQL と異なる */

employees _

.Where(Function(x1) (x1.emp_id).StarsWith("A")) _ .Select(Function(x1) New With { _

x1.pub_id, _ .value1 = System.Data.Objects.SqlClient.SqlFunctions.IsNumeric(x1.pub_id), _ .value2 = System.Data.Objects.SqlClient.SqlFunctions.IsNumeric("12.3")})

TopPage

ファイル名 No27_6.linq 関数名 ISNUMERIC

引数の説明 NULL 禁止(char 型)と NULL 禁止(datetime 型)

T-SQL SELECT pub_id, ISNUMERIC(pub_id) AS value1, ISNUMERIC(hire_date) AS value2 FROM employees

WHERE emp_id LIKE 'A%' LINQ コード /* LINQ to SQL と異なる */

employees _

.Where(Function(x1) (x1.emp_id).StarsWith("A")) _ .Select(Function(x1) New With { _

x1.pub_id, _

.value1 = System.Data.Objects.SqlClient.SqlFunctions.IsNumeric(x1.pub_id), _

(24)

TopPage

ファイル名 No28.linq

関数名 LEFT

引数の説明 NULL 禁止(varchar 型)から 2 文字分

T-SQL SELECT title_id, LEFT(title_id, 2) AS topname FROM titles

WHERE title_id = 'BU1032' LINQ コード /* LINQ to SQL と同一 */

titles _

.Where(Function(x1) x1.title_id = "BU1032") _ .Select(Function(x1) New With { _

x1.title_id, _

.topname = (x1.title_id).Substring(0, CInt(2))})

TopPage

ファイル名 No28_2.linq

関数名 LEFT

引数の説明 NULL 許容(char 型)から 2 文字分

T-SQL SELECT stor_id, LEFT(stor_id, 2) AS value FROM discounts

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

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

.value = (x1.stor_id).Substring(0, CInt(2))})

TopPage

ファイル名 No28_3.linq

関数名 LEFT

引数の説明 NULL 禁止(varchar 型)から NULL 許容(smallint 型)文字分

T-SQL SELECT discounttype, lowqty, LEFT(discounttype, lowqty) AS value FROM discounts

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

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

x1.lowqty, _

.value = (x1.discounttype).Substring(0, CInt(x1.lowqty))})

TopPage

(25)

ファイル名 No28_4.linq

関数名 LEFT

引数の説明 NULL 許容(char 型)から NULL 許容(smallint 型)文字分 T-SQL SELECT stor_id, lowqty, LEFT(stor_id, lowqty) AS value

FROM discounts

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

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

x1.lowqty, _

.value = (x1.stor_id).Substring(0, CInt(x1.lowqty))})

TopPage

ファイル名 No29.linq

関数名 LEFT

引数の説明 文字列リテラル

T-SQL SELECT title_id, LEFT('BU1032', 2) AS topname FROM titles

WHERE title_id = 'BU1032'

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

.Where(Function(x1) x1.title_id = "BU1032") _ .Select(Function(x1) New With { _

x1.title_id, _

.topname = ("BU1032").Substring(0, CInt(2))})

TopPage

ファイル名 No30.linq

関数名 LEN

引数の説明 NULL 禁止(char 型)

T-SQL SELECT title_id, LEN(type) AS length FROM titles

WHERE title_id = 'BU1032' LINQ コード /* LINQ to SQL と同一 */

titles _

.Where(Function(x1) x1.title_id = "BU1032") _ .Select(Function(x1) New With { _

x1.title_id, _

.length = (x1.type).Length})

TopPage

ファイル名 No30_2.linq

(26)

引数の説明 NULL 許容(char 型)

T-SQL SELECT stor_id, LEN(stor_id) AS length FROM discounts

LINQ コード /* LINQ to SQL と異なる */ discounts _

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

.length = (CType((x1.stor_id).Length, Integer?))})

TopPage

ファイル名 No31.linq

関数名 LOWER

引数の説明 NULL 禁止(varchar 型)

T-SQL SELECT title_id, LOWER(title1) AS komoji FROM titles

WHERE title_id = 'BU1032'

LINQ コード /* LINQ to SQL と異なる(title1 のみ) */ titles _

.Where(Function(x1) x1.title_id = "BU1032") _ .Select(Function(x1) New With { _

x1.title_id, _ .komoji = (x1.title1).ToLower()})

TopPage

ファイル名 No31_2.linq 関数名 LOWER 引数の説明 NULL 許容(char 型)

T-SQL SELECT state, LOWER(state) AS komoji FROM publishers

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

.Select(Function(x1) New With { _ x1.state, _ .komoji = (x1.state).ToLower()})

TopPage

ファイル名 No32.linq 関数名 LTRIM 引数の説明 NULL 禁止(varchar 型)

T-SQL SELECT title_id, LTRIM(title1) AS trim FROM titles

(27)

LINQ コード /* LINQ to SQL と異なる */ titles _

.Where(Function(x1) x1.title_id = "BU1032") _ .Select(Function(x1) New With { _

x1.title_id, _ .trim = Microsoft.VisualBasic.Strings.LTrim(x1.title1)})

TopPage

ファイル名 No32_2.linq 関数名 LTRIM 引数の説明 NULL 許容(char 型)

T-SQL SELECT stor_id, LTRIM(stor_id) AS trim FROM discounts

LINQ コード /* LINQ to SQL と異なる */ discounts _

.Select(Function(x1) New With { _ x1.stor_id, _ .trim = (Microsoft.VisualBasic.Strings.LTrim(x1.stor_id))})

TopPage

ファイル名 No33.linq 関数名 MAX 引数の説明 NULL 許容(money 型)

T-SQL SELECT pub_id, MAX(price) AS maxprice FROM titles

GROUP BY pub_id

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

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

.pub_id = g1.Key.grKey1, _

.maxprice = g1.Max(Function(x1) x1.price)})

TopPage

ファイル名 No34.linq

関数名 MIN

引数の説明 NULL 許容(money 型)

T-SQL SELECT pub_id, MIN(price) AS minprice FROM titles

GROUP BY pub_id

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

(28)

.Select(Function(g1) New With { _ .pub_id = g1.Key.grKey1, _

.minprice = g1.Min(Function(x1) x1.price)})

TopPage

ファイル名 No35.linq

関数名 MONTH

引数の説明 NULL 禁止(datetime 型)

T-SQL SELECT ord_date, MONTH(ord_date) AS hinichi FROM sales

WHERE stor_id = '6380' LINQ コード /* LINQ to SQL と異なる */

sales _

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

x1.ord_date, _ .hinichi = System.Data.Objects.SqlClient.SqlFunctions.DatePart("month", x1. ord_date)})

TopPage

ファイル名 No36.linq 関数名 MONTH 引数の説明 文字列リテラルで表した時間

T-SQL SELECT ord_date, MONTH('1994-09-14') AS hinichi FROM sales

WHERE stor_id = '6380' LINQ コード /* LINQ to SQL と異なる */

sales _

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

x1.ord_date, _ .hinichi = System.Data.Objects.SqlClient.SqlFunctions.DatePart("month", Ne w Date(1994, 09, 14))})

TopPage

ファイル名 No36_2.linq 関数名 MONTH

引数の説明 (Northwind データベース)NULL 許容(datetime 型) T-SQL SELECT ShippedDate, MONTH(ShippedDate) AS value

FROM Orders

WHERE OrderID = 11008 OR OrderID = 11009 LINQ コード /* LINQ to SQL と異なる */

(29)

.Where(Function(x1) x1.OrderID = 11008 OrElse x1.OrderID = 11009) _ .Select(Function(x1) New With { _

x1.ShippedDate, _ .value = (System.Data.Objects.SqlClient.SqlFunctions.DatePart("month", x1. ShippedDate))})

TopPage

ファイル名 No37.linq 関数名 NULLIF

引数の説明 NULL 禁止(tinyint 型)と NULL 禁止(tinyint 型)を比較する T-SQL SELECT job_id, NULLIF(min_lvl, max_lvl) AS same

FROM jobs

WHERE job_id <= 5 LINQ コード /* LINQ to SQL と同一 */

jobs _

.Where(Function(x1) x1.job_id <= 5) _ .Select(Function(x1) New With { _ x1.job_id, _

.same = If(x1.min_lvl = x1.max_lvl, CType(Nothing, Integer?), x1.min_lvl)})

TopPage

ファイル名 No37_2.linq

関数名 NULLIF

引数の説明 NULL 禁止(decimal(4, 2)型)と小数部を持つ数値リテラルを比較する

T-SQL SELECT discount1, NULLIF(discount1, 10.5) AS same FROM discounts

LINQ コード /* LINQ to SQL と異なる(discount1 のみ) */ discounts _

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

.same = If(x1.discount1 = 10.5D, CType(Nothing, Decimal?), x1.discount1)})

TopPage

ファイル名 No37_3.linq

関数名 NULLIF

引数の説明 NULL 禁止(char 型)と文字列リテラルを比較する

T-SQL SELECT type, NULLIF(type, 'mod_cook') AS same FROM titles

WHERE title_id LIKE 'MC%'

LINQ コード /* LINQ to SQL と異なる(LIKE 述語のみ) */ titles _

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

(30)

x1.type, _

.same = If(x1.type = "mod_cook", CType(Nothing, String), x1.type)})

TopPage

ファイル名 No37_4.linq

関数名 NULLIF

引数の説明 No37_2.linq の引数を入れ替える

T-SQL SELECT discount1, NULLIF(10.5, discount1) AS same FROM discounts

LINQ コード /* LINQ to SQL と異なる(discount1 のみ) */ discounts _

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

.same = If(10.5D = x1.discount1, CType(Nothing, Decimal?), 10.5D)})

TopPage

ファイル名 No37_5.linq

関数名 NULLIF

引数の説明 No37_3.linq の引数を入れ替える

T-SQL SELECT type, NULLIF('mod_cook', type) AS same FROM titles

WHERE title_id LIKE 'MC%'

LINQ コード /* LINQ to SQL と異なる(LIKE 述語のみ) */ titles _

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

x1.type, _

.same = If("mod_cook" = x1.type, CType(Nothing, String), "mod_cook")})

TopPage

ファイル名 No37_6.linq

関数名 NULLIF

引数の説明 NULL 許容(int 型)と整数リテラルを比較する

T-SQL SELECT royalty, NULLIF(royalty, 12) AS same FROM titles

WHERE title_id LIKE 'MC%'

LINQ コード /* LINQ to SQL と異なる(LIKE 述語のみ) */ titles _

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

x1.royalty, _

(31)

TopPage

ファイル名 No37_7.linq

関数名 NULLIF

引数の説明 NULL 許容(money 型)と小数部を持つ数値リテラルを比較する

T-SQL SELECT price, NULLIF(price, 19.99) AS same FROM titles

WHERE title_id LIKE 'MC%'

LINQ コード /* LINQ to SQL と異なる(LIKE 述語のみ) */ titles _

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

x1.price, _

.same = If(x1.price = 19.99D, CType(Nothing, Decimal?), x1.price)})

TopPage

ファイル名 No37_8.linq

関数名 NULLIF

引数の説明 NULL 許容(money 型)と NULL 許容(money 型)を比較する T-SQL SELECT price, advance, NULLIF(price, advance) AS same

FROM titles

WHERE title_id LIKE 'MC%'

LINQ コード /* LINQ to SQL と異なる(LIKE 述語のみ) */ titles _

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

x1.price, _ x1.advance, _

.same = If(x1.price = x1.advance, CType(Nothing, Decimal?), x1.price)})

TopPage

ファイル名 No37_9.linq

関数名 NULLIF

引数の説明 NULL 許容(char 型)と文字列リテラルを比較する

T-SQL SELECT stor_id, NULLIF(stor_id, '8042') AS same FROM discounts

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

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

.same = If(x1.stor_id = "8042", CType(Nothing, String), x1.stor_id)})

TopPage

(32)

ファイル名 No37_10.linq

関数名 NULLIF

引数の説明 (Northwind データベース)NULL 許容(datetime 型)と NULL 許容(datetime 型)を比較 する

T-SQL SELECT ShippedDate, OrderDate, NULLIF(ShippedDate, Orderdate) AS same FROM Orders

WHERE OrderID = 11008 OR OrderID = 11009 LINQ コード /* LINQ to SQLと同一 */

Orders _

.Where(Function(x1) x1.OrderID = 11008 OrElse x1.OrderID = 11009) _ .Select(Function(x1) New With { _

x1.ShippedDate, _ x1.OrderDate, _

.same = If(x1.ShippedDate = x1.OrderDate, CType(Nothing, Date?), x1.Shippe dDate)})

TopPage

ファイル名 No37_11.linq

関数名 NULLIF

引数の説明 No37_10.linq の引数を入れ替える

T-SQL SELECT OrderDate, ShippedDate, NULLIF(Orderdate, ShippedDate) AS same FROM Orders

WHERE OrderID = 11008 OR OrderID = 11009 LINQ コード /* LINQ to SQLと同一 */

Orders _

.Where(Function(x1) x1.OrderID = 11008 OrElse x1.OrderID = 11009) _ .Select(Function(x1) New With { _

x1.OrderDate, _ x1.ShippedDate, _

.same = If(x1.OrderDate = x1.ShippedDate, CType(Nothing, Date?), x1.OrderD ate)})

TopPage

ファイル名 No38.linq 関数名 REPLACE 引数の説明 対象文字列 = NULL 禁止(char 型), 検索文字列 = 文字列リテラル, 置換文字列 = 文字列リテラル

T-SQL SELECT type, REPLACE(type, 'cook', 'COOK') AS bigletter FROM titles

WHERE type LIKE '%cook'

LINQ コード /* LINQ to SQL と異なる(LIKE 述語のみ) */ titles _

.Where(Function(x1) (x1.type).EndsWith("cook")) _ .Select(Function(x1) New With { _

(33)

.bigletter = (x1.type).Replace("cook", "COOK")})

TopPage

ファイル名 No38_2.linq 関数名 REPLACE 引数の説明 対象文字列 = NULL 許容(char 型), 検索文字列 = 文字列リテラル, 置換文字列 = 文字列リテラル

T-SQL SELECT stor_id, REPLACE(stor_id, '04', '05') AS value FROM discounts

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

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

.value = (x1.stor_id).Replace("04", "05")})

TopPage

ファイル名 No38_3.linq

関数名 REPLACE

引数の説明 対象文字列 = NULL 禁止(varchar 型), 検索文字列 = NULL 許容(char 型), 置換文字列 = 文字列リテラル

T-SQL SELECT discounttype, stor_id, REPLACE(discounttype, stor_id, '12') AS value

FROM discounts

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

.Select(Function(x1) New With { _ x1.discounttype, _ x1.stor_id, _ .value = (x1.discounttype).Replace(x1.stor_id, "12")})

TopPage

ファイル名 No38_4.linq 関数名 REPLACE 引数の説明 対象文字列 = NULL 禁止(varchar 型), 検索文字列 = 文字列リテラル, 置換文字列 = NULL 許容(char 型)

T-SQL SELECT discounttype, stor_id, REPLACE(discounttype, 'Discount', stor_id) AS value

FROM discounts

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

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

(34)

.value = (x1.discounttype).Replace("Discount", x1.stor_id)})

TopPage

ファイル名 No39.linq

関数名 REPLICATE

引数の説明 NULL 禁止(char 型)を整数リテラル回数繰り返す

T-SQL SELECT type, REPLICATE(type, 2) AS repeat FROM titles

WHERE type LIKE '%cook' LINQ コード /* LINQ to SQLと異なる */

titles _

.Where(Function(x1) (x1.type).EndsWith("cook")) _ .Select(Function(x1) New With { _

x1.type, _ .repeat = System.Data.Objects.SqlClient.SqlFunctions.Replicate(x1.type, 2)})

TopPage

ファイル名 No39_2.linq 関数名 REPLICATE

引数の説明 NULL 禁止(varchar 型)を NULL 禁止(smallint 型)回数繰り返す T-SQL SELECT lname, job_id , REPLICATE(lname, job_id) AS repeat

FROM employees

WHERE emp_id = 'PTC11962M' LINQ コード /* LINQ to SQLと異なる */

employees _

.Where(Function(x1) x1.emp_id = "PTC11962M") _ .Select(Function(x1) New With { _

x1.lname, _ x1.job_id, _ .repeat = System.Data.Objects.SqlClient.SqlFunctions.Replicate(x1.lname, x 1.job_id)})

TopPage

ファイル名 No39_3.linq 関数名 REPLICATE 引数の説明 NULL 許容(char 型)を整数リテラル回数繰り返す

T-SQL SELECT stor_id, REPLICATE(stor_id, 2) AS repeat FROM discounts

LINQ コード /* LINQ to SQLと異なる */ discounts _

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

(35)

.repeat = System.Data.Objects.SqlClient.SqlFunctions.Replicate(x1.stor_id, 2)})

TopPage

ファイル名 No39_4.linq

関数名 REPLICATE

引数の説明 NULL 禁止(varchar 型)を NULL 許容(int 型)回数繰り返す T-SQL SELECT type, royalty , REPLICATE(type, royalty) AS repeat

FROM titles

WHERE title_id = 'BU1032' LINQ コード /* LINQ to SQLと異なる */

titles _

.Where(Function(x1) x1.title_id = "BU1032") _ .Select(Function(x1) New With { _

x1.type, _ x1.royalty, _ .repeat = (System.Data.Objects.SqlClient.SqlFunctions.Replicate(x1.type, x 1.royalty))})

TopPage

ファイル名 No39_5.linq 関数名 REPLICATE

引数の説明 NULL 許容(char 型)を NULL 許容(int 型)回数繰り返す

T-SQL SELECT pub_id, royalty, REPLICATE(pub_id, royalty) AS repeat FROM titles

WHERE title_id = 'BU1032' LINQ コード /* LINQ to SQLと異なる */

titles _

.Where(Function(x1) x1.title_id = "BU1032") _ .Select(Function(x1) New With { _

x1.pub_id, _ x1.royalty, _ .repeat = (System.Data.Objects.SqlClient.SqlFunctions.Replicate(x1.pub_id, x1.royalty))})

TopPage

ファイル名 No40.linq 関数名 REVERSE 引数の説明 NULL 禁止(varchar 型)

T-SQL SELECT type, REVERSE(type) AS hanntai FROM titles

WHERE type LIKE '%cook' LINQ コード /* LINQ to SQLと異なる */

(36)

titles _

.Where(Function(x1) (x1.type).EndsWith("cook")) _ .Select(Function(x1) New With { _

x1.type, _ .hanntai = EntityFunctions.Reverse(x1.type)})

TopPage

ファイル名 No40_2.linq 関数名 REVERSE 引数の説明 NULL 許容(varchar 型)

T-SQL SELECT stor_id, REVERSE(stor_id) AS hanntai FROM discounts

LINQ コード /* LINQ to SQLと異なる */ discounts _

.Select(Function(x1) New With { _ x1.stor_id, _ .hanntai = (EntityFunctions.Reverse(x1.stor_id))})

TopPage

ファイル名 No41.linq 関数名 RIGHT 引数の説明 NULL 禁止(varchar 型)から整数リテラル文字分

T-SQL SELECT title_id, RIGHT(title_id, 4) AS lastname FROM titles

WHERE title_id = 'BU1032' LINQ コード /* LINQ to SQLと同一 */

titles _

.Where(Function(x1) x1.title_id = "BU1032") _ .Select(Function(x1) New With { _

x1.title_id, _

.lastname = (x1.title_id).Substring((x1.title_id).Length - CInt(4), CInt (4))})

TopPage

ファイル名 No41_2.linq

関数名 RIGHT

引数の説明 NULL 許容(char 型)から整数リテラル文字分

T-SQL SELECT stor_id, RIGHT(stor_id, 2) AS value FROM discounts

LINQ /* LINQ to SQLと同一 */ discounts _

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

(37)

.value = (x1.stor_id).Substring((x1.stor_id).Length - CInt(2), CInt(2))})

TopPage

ファイル名 No41_3.linq

関数名 RIGHT

引数の説明 NULL 許容(char 型)から NULL 許容(smallint 型)文字分

T-SQL SELECT stor_id, lowqty, RIGHT(stor_id, lowqty) AS value FROM discounts

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

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

x1.lowqty, _

.value = (x1.stor_id).Substring((x1.stor_id).Length - CInt(x1.lowqty), CIn t(x1.lowqty))})

TopPage

ファイル名 No42.linq

関数名 ROUND

引数の説明 対象数 = NULL 許容(money 型), 小数桁 = 整数リテラル T-SQL SELECT price, ROUND(price, 1, 1) AS marume

FROM titles

WHERE type = 'business' LINQ コード /* LINQ to SQLと異なる */

titles _

.Where(Function(x1) x1.type = "business") _ .Select(Function(x1) New With { _

x1.price, _ .marume = (EntityFunctions.Truncate(x1.price, 1))})

TopPage

ファイル名 No42_2.linq 関数名 ROUND 引数の説明 対象数 = NULL 禁止(decimal(4, 2)型), 小数桁 = 整数リテラル T-SQL SELECT discount1, ROUND(discount1, 1) AS marume

FROM discounts

LINQ コード /* LINQ to SQLと異なる */ discounts _

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

.marume = Math.Round(CDec(x1.discount1), 1)})

TopPage

(38)

ファイル名 No42_3.linq

関数名 ROUND

引数の説明 対象数 = NULL 禁止(decimal(4, 2)型), 小数桁 = NULL 許容(int 型) T-SQL SELECT discount, lowqty, ROUND(discount, lowqty / 100) AS marume

FROM discounts

LINQ コード /* LINQ to SQLと異なる */ discounts _

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

x1.lowqty, _

.marume = (CType(Math.Round(CDec(x1.discount1), CInt(x1.lowqty / 100)), De cimal?))})

TopPage

ファイル名 No42_4.linq

関数名 ROUND

引数の説明 対象数 = NULL 許容(money 型), 小数桁 = NULL 許容(int 型)

T-SQL SELECT price, royalty, ROUND(price, royalty / 100) AS marume FROM titles

WHERE title_id LIKE 'MC%' LINQ コード /* LINQ to SQLと異なる */

titles _

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

x1.price, _ x1.royalty, _

.marume = (CType(Math.Round(CDec(x1.price), CInt(x1.royalty / 100)), Decim al?))})

TopPage

ファイル名 No43.linq

関数名 RTRIM

引数の説明 NULL 禁止(varchar 型)

T-SQL SELECT title_id, RTRIM(title1) AS trim FROM titles

WHERE title_id = 'BU1032' LINQ コード /* LINQ to SQLと異なる */

titles _

.Where(Function(x1) x1.title_id = "BU1032") _ .Select(Function(x1) New With { _

x1.title_id, _

(39)

TopPage

ファイル名 No43_2.linq

関数名 RTRIM

引数の説明 NULL 許容(char 型)

T-SQL SELECT stor_id, RTRIM(stor_id) AS trim FROM discounts

LINQ コード /* LINQ to SQLと異なる */ discounts _

.Select(Function(x1) New With { _ x1.stor_id, _ .trim = (Microsoft.VisualBasic.Strings.RTrim(x1.stor_id))})

TopPage

ファイル名 No44.linq 関数名 SIGN 引数の説明 NULL 許容(money 型)

T-SQL SELECT price, SIGN(price) AS hugou FROM titles

WHERE type = 'business' LINQ コード /* LINQ to SQLと異なる */

titles _

.Where(Function(x1) x1.type = "business") _ .Select(Function(x1) New With { _

x1.price, _ .hugou = (System.Data.Objects.SqlClient.SqlFunctions.Sign(x1.price))})

TopPage

ファイル名 No44_2.linq 関数名 SIGN 引数の説明 NULL 禁止(decimal(4, 2)型)

T-SQL SELECT discount1, SIGN(discount1) AS hugou FROM discounts

LINQ コード /* LINQ to SQLと異なる */ discounts _

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

.hugou = System.Data.Objects.SqlClient.SqlFunctions.Sign(x1.discount1)})

TopPage

ファイル名 No45.linq

(40)

引数の説明 整数リテラル

T-SQL SELECT au_id, au_lname + SPACE(5) + au_fname AS namae 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_id, _

.namae = x1.au_lname + System.Data.Objects.SqlClient.SqlFunctions.Space(5) + x1.au_fname})

TopPage

ファイル名 No45_2.linq

関数名 SPACE

引数の説明 NULL 許容(int 型)

T-SQL SELECT title_id, pub_id, royalty, title_id + SPACE(royalty) + pub_id AS value

FROM titles

WHERE title_id LIKE 'MC%' LINQ コード /* LINQ to SQLと異なる */

titles _

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

x1.title_id, _ x1.pub_id, _ x1.royalty, _

.value = x1.title_id + (System.Data.Objects.SqlClient.SqlFunctions.Space(x 1.royalty)) + x1.pub_id})

TopPage

ファイル名 No46.linq

関数名 STR

引数の説明 対象数 = NULL 許容(money 型), 小数桁 = 整数リテラル T-SQL SELECT price, STR(price, 4, 1) AS marume

FROM titles

WHERE type = 'business' LINQ コード /* LINQ to SQLと異なる */

titles _

.Where(Function(x1) x1.type = "business") _ .Select(Function(x1) New With { _

x1.price, _

.marume = (System.Data.Objects.SqlClient.SqlFunctions.StringConvert(CDec(x 1.price), 4, 1))})

(41)

TopPage

ファイル名 No46_2.linq

関数名 STR

引数の説明 No46.linq では NULL 無しなので NULL を含むようにする T-SQL SELECT price, STR(price, 4, 1) AS marume

FROM titles

WHERE title_id LIKE 'MC%'

LINQ コード /* LINQ to SQLと異なる */ titles _

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

x1.price, _ .marume = (System.Data.Objects.SqlClient.SqlFunctions.StringConvert(CDec(x 1.price), 4, 1))})

TopPage

ファイル名 No46_3.linq 関数名 STR 引数の説明 対象数 = NULL 禁止(decimal(4, 2)型), 小数桁 = 整数リテラル T-SQL SELECT discount1, STR(discount1, 4, 1) AS marume

FROM discounts

LINQ コード /* LINQ to SQLと異なる */ discounts _

.Select(Function(x1) New With { _ x1.discount, _ .marume = System.Data.Objects.SqlClient.SqlFunctions.StringConvert(CDec(x1. discount1), 4, 1)})

TopPage

ファイル名 No46_4.linq 関数名 STR

引数の説明 対象数 = NULL 禁止(decimal(4, 2)型), 小数桁 = NULL 許容(int 型) T-SQL SELECT discount1, lowqty, STR(discount1, 4, lowqty / 100) AS marume

FROM discounts

LINQ コード /* VB では x1.lowqty / 100 は Double 型になる。しかし、StringConvert メソッド の第 3 引数のデータ型は Integer であり、Double 型から Integer 型への暗黙的な 縮小変換ができないため、下記の LINQ コードは構文エラーになる。

これを回避するには、No46_6.linq のように明示的に縮小変換する必要がある。*/ discounts _

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

x1.lowqty, _

.marume = (System.Data.Objects.SqlClient.SqlFunctions.StringConvert(CDec(x 1.discount1), 4, x1.lowqty / 100))})

(42)

TopPage

ファイル名 No46_6.linq

関数名 STR

引数の説明 対象数 = NULL 許容(decimal(4, 2)型), 小数桁 = NULL 許容(int 型) T-SQL SELECT discount1, lowqty,

STR(discount1, 4, CAST(lowqty / 100 AS int)) AS marume FROM discounts

LINQ コード /* LINQ to SQLと異なる */ discounts _

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

x1.lowqty, _

.marume = (System.Data.Objects.SqlClient.SqlFunctions.StringConvert(CDec(x 1.discount1), 4, CType(x1.lowqty / 100, Integer?)))})

TopPage

ファイル名 No47.linq

関数名 STUFF

引数の説明 対象文字列 = NULL 禁止(char 型), 対象位置 = 整数リテラル, 削除文字数 = 整数リテラル, 挿入文字列 = 文字列リテラル T-SQL SELECT type, STUFF(type, 5, 4, 'NESS') AS hennkei

FROM titles

WHERE type = 'business' LINQ コード /* LINQ to SQLと異なる */

titles _

.Where(Function(x1) x1.type = "business") _ .Select(Function(x1) New With { _

x1.type, _ .hennkei = System.Data.Objects.SqlClient.SqlFunctions.Stuff(x1.type, 5, 4, "NESS")})

TopPage

ファイル名 No47_2.linq 関数名 STUFF 引数の説明 対象文字列 = NULL 許容(char 型), 対象位置 = 整数リテラル, 削除文字数 = 整数リテラル, 挿入文字列 = 文字列リテラル T-SQL SELECT stor_id, STUFF(stor_id, 2, 2, '??') AS hennkei

FROM discounts

LINQ コード /* LINQ to SQLと異なる */ discounts _

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

(43)

.hennkei = System.Data.Objects.SqlClient.SqlFunctions.Stuff(x1.stor_id, 2, 2, "??")})

TopPage

ファイル名 No47_3.linq

関数名 STUFF

引数の説明 対象文字列 = NULL 禁止(varchar 型), 対象位置 = NULL 許容(int 型), 削除文字数 = 整数リテラル, 挿入文字列 = 文字列リテラル

T-SQL SELECT title_id, royalty, STUFF(title_id, royalty / 10 + 1, 4, '????') AS hennkei

FROM titles

WHERE title_id LIKE 'MC%' LINQ コード /* LINQ to SQLと異なる */

titles _

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

x1.title_id, _ x1.royalty, _ .hennkei = (System.Data.Objects.SqlClient.SqlFunctions.Stuff(x1.title_id, x1.royalty / 10 + 1, 4, "????"))})

TopPage

ファイル名 No47_4.linq 関数名 STUFF 引数の説明 対象文字列 = NULL 禁止(varchar 型), 対象位置 = 整数リテラル, 削除文字数 = NULL 許容(int 型), 挿入文字列 = 文字列リテラル

T-SQL SELECT title_id, royalty, STUFF(title_id, 3, royalty / 10, '????') AS hennkei

FROM titles

WHERE title_id LIKE 'MC%' LINQ コード /* LINQ to SQLと異なる */

titles _

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

x1.title_id, _ x1.royalty, _ .hennkei = (System.Data.Objects.SqlClient.SqlFunctions.Stuff(x1.title_id, 3, x1.royalty / 10, "????"))})

TopPage

ファイル名 No47_5.linq 関数名 STUFF

引数の説明 対象文字列 = NULL 禁止(char 型), 対象位置 = NULL 許容(int 型), 削除文字数 = NULL 許容(int 型), 挿入文字列 = 文字列リテラル

参照

関連したドキュメント

日数 ワクチン名 製造販売業者 ロット番号 接種回数 基礎疾患等 症状名(PT名).

目名 科名 種名 学名.. 目名 科名

事業名  開 催 日  会      場  参加人数  備    考  オーナーとの出会いの. デザイン  3月14日(土)  北沢タウンホール 

開催日時:2019 年4 月~ 2020 年3 月 講師:あかしなおこ. 事業収入:328,200 円 事業支出:491,261 円 在籍数:8 名,入会者数:1

なごみ 11 名(2 ユニット) 、ひだまり 8 名(2 ユニット)短期入所(合計 4 名) あすわ 2 名、ひまわりの家 2 名

[r]

「PTA聖書を学ぶ会」の通常例会の出席者数の平均は 2011 年度は 43 名、2012 年度は 61 名、2013 年度は 79 名、そして 2014 年度は 84

①生活介護 定員 60 名 ②施設入所支援 定員 40 名 ③短期入所 定員10名 ④グループホーム 定員10名 ⑤GH 併設短期入所 定員3名. サービス 定員 延 べ 利