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
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
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
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
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
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, _
.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 と異なる */
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
関数名 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))})
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
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))})
ファイル名 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 { _
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 と異なる */
.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
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
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引数の説明 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
関数名 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 型)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引数の説明 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?)))})
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, _
.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
ファイル名 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), _
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
ファイル名 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
引数の説明 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
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 _
.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 と異なる */
.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 { _
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, _
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
ファイル名 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 { _
.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, _
.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, _
.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と異なる */
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, _
.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 marumeFROM discounts
LINQ コード /* LINQ to SQLと異なる */ discounts _
.Select(Function(x1) New With { _ x1.discount1, _
.marume = Math.Round(CDec(x1.discount1), 1)})
TopPage
ファイル名 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, _
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
引数の説明 整数リテラル
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))})
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 marumeFROM 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))})
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 hennkeiFROM discounts
LINQ コード /* LINQ to SQLと異なる */ discounts _
.Select(Function(x1) New With { _ x1.stor_id, _
.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 型), 挿入文字列 = 文字列リテラル