], [t1].[Address], [t1].[City], [t1].[Region], [t1].[PostalCode], [t1].[Country], [t1].[Phone], [t1].[Fax]
ntactName], [t0].[ContactTitle], [t0].[Address], [t0].[City], [t0].[Region], [t0].[PostalCode], [t0].[Country], [t0].[Phone], [t0], [t0].[Fax]
分组
描述:根据顾客的国家分组,查询顾客数大于5的国家名和顾客数 查询句法:
Select count(guke) from Customers grop by Country var 一般分组 = from c in ctx.Customers group c by c.Country into g where g.Count() > 5
orderby g.Count() descending select new {
国家 = g.Key,
顾客数 = g.Count() }; 对应SQL:
SELECT [t1].[Country], [t1].[value3] AS [顾客数] FROM (
SELECT COUNT(*) AS [value], COUNT(*) AS [value2], COUNT(*) AS [value3], [t0].[Country] FROM [dbo].[Customers] AS [t0] GROUP BY [t0].[Country] ) AS [t1]
WHERE [t1].[value] > @p0
ORDER BY [t1].[value2] DESC
-- @p0: Input Int32 (Size = 0; Prec = 0; Scale = 0) [5]
描述:根据国家和城市分组,查询顾客覆盖的国家和城市 查询句法:
var 匿名类型分组 = from c in ctx.Customers group c by new { c.City, c.Country } into g orderby g.Key.Country, g.Key.City select new {
国家 = g.Key.Country, 城市 = g.Key.City };
对应SQL:
SELECT [t1].[Country], [t1].[City] FROM (
SELECT [t0].[City], [t0].[Country] FROM [dbo].[Customers] AS [t0] GROUP BY [t0].[City], [t0].[Country] ) AS [t1]
ORDER BY [t1].[Country], [t1].[City]
描述:按照是否超重条件分组,分别查询订单数量 查询句法:
var 按照条件分组 = from o in ctx.Orders
group o by new { 条件 = o.Freight > 100 } into g select new {
数量 = g.Count(),
是否超重 = g.Key.条件 ? \是\否\ }; 对应SQL:
SELECT (CASE
WHEN [t2].[value2] = 1 THEN @p1 ELSE @p2
END) AS [value], [t2].[value] AS [数量] FROM (
SELECT COUNT(*) AS [value], [t1].[value] AS [value2] FROM ( SELECT (CASE
WHEN [t0].[Freight] > @p0 THEN 1
WHEN NOT ([t0].[Freight] > @p0) THEN 0 ELSE NULL END) AS [value]
FROM [dbo].[Orders] AS [t0] ) AS [t1]
GROUP BY [t1].[value] ) AS [t2]
-- @p0: Input Currency (Size = 0; Prec = 19; Scale = 4) [100] -- @p1: Input String (Size = 1; Prec = 0; Scale = 0) [是] -- @p2: Input String (Size = 1; Prec = 0; Scale = 0) [否]
distinct
描述:查询顾客覆盖的国家 查询句法:
var 过滤相同项 = (from c in ctx.Customers orderby c.Country select c.Country).Distinct();
对应SQL:
SELECT DISTINCT [t0].[Country] FROM [dbo].[Customers] AS [t0] union
描述:查询城市是A打头和城市包含A的顾客并按照顾客名字排序 查询句法:
var 连接并且过滤相同项 = (from c in ctx.Customers where c.City.Contains(\
(from c in ctx.Customers where c.ContactName.StartsWith(\
对应SQL:
.[CompanyName], [t3].[ContactName], [t3].[ContactTitle], [t3].[Address], [t3].[City], [t3].[Region], [t3].[PostalCode], [t3].[
.[CompanyName], [t2].[ContactName], [t2].[ContactTitle], [t2].[Address], [t2].[City], [t2].[Region], [t2].[PostalCode], [t2].[
.[CompanyName], [t0].[ContactName], [t0].[ContactTitle], [t0].[Address], [t0].[City], [t0].[Region], [t0].[PostalCode], [t0].[AS [t0] @p0
.[CompanyName], [t1].[ContactName], [t1].[ContactTitle], [t1].[Address], [t1].[City], [t1].[Region], [t1].[PostalCode], [t1].[AS [t1]
] LIKE @p1
ame]
3; Prec = 0; Scale = 0) [%A%]
2; Prec = 0; Scale = 0) [A%]
concat
描述:查询城市是A打头和城市包含A的顾客并按照顾客名字排序,相同的顾客信息不会过滤 查询句法:
var 连接并且不过滤相同项 = (from c in ctx.Customers where c.City.Contains(\
(from c in ctx.Customers where c.ContactName.StartsWith(\
对应SQL:
SELECT [t3].[CustomerID], [t3].[CompanyName], [t3].[ContactName], [t3].[ContactTitle], [t3].[Address], [t3].[City], [t3].[Region], [t3].[PostalCode], [t3].[Country], [t3].[Phone], [t3].[Fax] FROM (
SELECT [t2].[CustomerID], [t2].[CompanyName], [t2].[ContactName], [t2].[ContactTitle], [t2].[Address], [t2].[City], [t2].[Region], [t2].[PostalCode], [t2].[Country], [t2].[Phone], [t2].[Fax] FROM (
SELECT [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName], [t0].[ContactTitle], [t0].[Address], [t0].[City], [t0].[Region], [t0].[PostalCode], [t0].[Country], [t0].[Phone], [t0].[Fax] FROM [dbo].[Customers] AS [t0] WHERE [t0].[City] LIKE @p0 UNION ALL
SELECT [t1].[CustomerID], [t1].[CompanyName], [t1].[ContactName], [t1].[ContactTitle], [t1].[Address], [t1].[City], [t1].[Region], [t1].[PostalCode], [t1].[Country], [t1].[Phone], [t1].[Fax] FROM [dbo].[Customers] AS [t1]