03Linqtosql查询语法Word格式.docx

上传人:b****4 文档编号:17608672 上传时间:2022-12-07 格式:DOCX 页数:15 大小:18.27KB
下载 相关 举报
03Linqtosql查询语法Word格式.docx_第1页
第1页 / 共15页
03Linqtosql查询语法Word格式.docx_第2页
第2页 / 共15页
03Linqtosql查询语法Word格式.docx_第3页
第3页 / 共15页
03Linqtosql查询语法Word格式.docx_第4页
第4页 / 共15页
03Linqtosql查询语法Word格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

03Linqtosql查询语法Word格式.docx

《03Linqtosql查询语法Word格式.docx》由会员分享,可在线阅读,更多相关《03Linqtosql查询语法Word格式.docx(15页珍藏版)》请在冰豆网上搜索。

03Linqtosql查询语法Word格式.docx

SELECT[t0].[LastName]+[t0].[FirstName]AS[value],DATEPART(Year,[t0].[HireDate])AS[value2]

FROM[dbo].[Employees]AS[t0]

查询顾客的ID以及联系信息(职位和联系人)

var构建匿名类型3=fromcinctx.Customers

ID=c.CustomerID,

联系信息=new

职位=c.ContactTitle,

联系人=c.ContactName

}

SELECT[t0].[CustomerID],[t0].[ContactTitle],[t0].[ContactName]

FROM[dbo].[Customers]AS[t0]

查询订单号和订单是否超重的信息

varselect带条件=fromoinctx.Orders

订单号=o.OrderID,

是否超重=o.Freight>

100?

"

是"

:

否"

SELECT[t0].[OrderID],

(CASE

WHEN[t0].[Freight]>

@p0THEN@p1

ELSE@p2

END)AS[value]

FROM[dbo].[Orders]AS[t0]

--@p0:

InputCurrency(Size=0;

Prec=19;

Scale=4)[100]

--@p1:

InputString(Size=1;

Prec=0;

Scale=0)[是]

--@p2:

Scale=0)[否]

where

查询顾客的国家、城市和订单数信息,要求国家是法国并且订单数大于5

var多条件=fromcinctx.Customers

wherec.Country=="

France"

&

&

c.Orders.Count>

5

国家=c.Country,

城市=c.City,

订单数=c.Orders.Count

SELECT[t0].[Country],[t0].[City],(

SELECTCOUNT(*)

FROM[dbo].[Orders]AS[t2]

WHERE[t2].[CustomerID]=[t0].[CustomerID]

)AS[value]

WHERE([t0].[Country]=@p0)AND(((

FROM[dbo].[Orders]AS[t1]

WHERE[t1].[CustomerID]=[t0].[CustomerID]

))>

@p1)

InputString(Size=6;

Scale=0)[France]

InputInt32(Size=0;

Scale=0)[5]

orderby

查询所有没有下属雇员的雇用年和名,按照雇用年倒序,按照名正序

var排序=fromempinctx.Employees

whereemp.Employees.Count==0

orderbyemp.HireDate.Value.Yeardescending,emp.FirstNameascending

雇用年=emp.HireDate.Value.Year,

名=emp.FirstName

SELECTDATEPART(Year,[t0].[HireDate])AS[value],[t0].[FirstName]

WHERE((

FROM[dbo].[Employees]AS[t1]

WHERE[t1].[ReportsTo]=[t0].[EmployeeID]

))=@p0

ORDERBYDATEPART(Year,[t0].[HireDate])DESC,[t0].[FirstName]

Scale=0)[0]

分页

按照每页10条记录,查询第二页的顾客

var分页=(fromcinctx.Customersselectc).Skip(10).Take(10);

SELECTTOP10[t1].[CustomerID],[t1].[CompanyName],[t1].[ContactName],[t1].[ContactTitle],[t1].[Address],[t1].[City],[t1].[Region],[t1].[PostalCode],[t1].[Country],[t1].[Phone],[t1].[Fax]

FROM(

SELECTROW_NUMBER()OVER(ORDERBY[t0].[CustomerID],[t0].[CompanyName],[t0].[ContactName],[t0].[ContactTitle],[t0].[Address],[t0].[City],[t0].[Region],[t0].[PostalCode],[t0].[Country],[t0].[Phone],[t0].[Fax])AS[ROW_NUMBER],[t0].[CustomerID],[t0].[CompanyName],[t0].[ContactName],[t0].[ContactTitle],[t0].[Address],[t0].[City],[t0].[Region],[t0].[PostalCode],[t0].[Country],[t0].[Phone],[t0].[Fax]

)AS[t1]

WHERE[t1].[ROW_NUMBER]>

@p0

Scale=0)[10]

分组

根据顾客的国家分组,查询顾客数大于5的国家名和顾客数

var一般分组=fromcinctx.Customers

groupcbyc.Countryintog

whereg.Count()>

orderbyg.Count()descending

国家=g.Key,

顾客数=g.Count()

SELECT[t1].[Country],[t1].[value3]AS[顾客数]

SELECTCOUNT(*)AS[value],COUNT(*)AS[value2],COUNT(*)AS[value3],[t0].[Country]

GROUPBY[t0].[Country]

WHERE[t1].[value]>

ORDERBY[t1].[value2]DESC

Scale=0)[5]

根据国家和城市分组,查询顾客覆盖的国家和城市

var匿名类型分组=fromcinctx.Customers

groupcbynew{c.City,c.Country}intog

orderbyg.Key.Country,g.Key.City

国家=g.Key.Country,

城市=g.Key.City

SELECT[t1].[Country],[t1].[City]

SELECT[t0].[City],[t0].[Country]

GROUPBY[t0].[City],[t0].[Country]

ORDERBY[t1].[Country],[t1].[City]

按照是否超重条件分组,分别查询订单数量

var按照条件分组=fromoinctx.Orders

groupobynew{条件=o.Freight>

100}intog

数量=g.Count(),

是否超重=g.Key.条件?

SELECT

WHEN[t2].[value2]=1THEN@p1

END)AS[value],[t2].[value]AS[数量]

SELECTCOUNT(*)AS[value],[t1].[value]AS[value2]

@p0THEN1

WHENNOT([t0].[Freight]>

@p0)THEN0

ELSENULL

GROUPBY[t1].[value]

)AS[t2]

distinct

查询顾客覆盖的国家

var过滤相同项=(fromcinctx.Customersselectc.Country).Distinct();

SELECTDISTINCT[t0].[Country]

Union(说明:

连接不同的集合,自动过滤相同项;

延迟。

即是将两个集合进行合并操作,过滤相同的项。

查询姓名是A打头和城市包含A的顾客并按照顾客名字排序

var连接并且过滤相同项=(fromcinctx.Customerswherec.City.Contains("

A"

)selectc).Union

(fromcinctx.Customerswherec.ContactName.StartsWith("

)selectc).OrderBy(c=>

c.ContactName);

SELECT[t3].[CustomerID],[t3].[CompanyName],[t3].[ContactName],[t3].[ContactTitle],[t3].[Address],[t3].[City],[t3].[Region],[t3].[PostalCode],[t3].[Country],[t3].[Phone],[t3].[Fax]

SELECT[t2].[CustomerID],[t2].[CompanyName],[t2].[ContactName],[t2].[ContactTitle],[t2].[Address],[t2].[City],[t2].[Region],[t2].[PostalCode],[t2].[Country],[t2].[Phone],[t2].[Fax]

SELECT[t0].[CustomerID],[t0].[CompanyName],[t0].[ContactName],[t0].[ContactTitle],[t0].[Address],[t0].[City],[t0].[Region],[t0].[PostalCode],[t0].[Country],[t0].[Phone],[t0].[Fax]

WHERE[t0].[City]LIKE@p0

UNION

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]

WHERE[t1].[ContactName]LIKE@p1

)AS[t3]

ORDERBY[t3].[ContactName]

Inp0utString(Size=3;

Scale=0)[%A%]

InputString(Size=2;

Scale=0)[A%]

Concat[说明:

连接不同的集合,不会自动过滤相同项;

]

查询是包含A的城市对应的顾客和姓名以A开头的顾客,并按照顾客名字排序,相同的顾客信息不会过滤

(两个条件多成立1.只要城市是包含A,2.也可以只要姓名一A打头)

var连接并且不过滤相同项=(fromcinctx.Customerswherec.City.Contains("

)selectc).Concat

UNIONALL

InputString(Size=3;

取相交项(说明:

取相交项;

即是获取不同集合的相同项(交集)。

即先遍历第一个集合,找出所有唯一的元素,然后遍历第二个集合,并将每个元素与前面找出的元素作对比,返回所有在两个集合内都出现的元素。

查询城市是A打头的顾客和姓名包含A的顾客的交集,并按照顾客名字排序

var取相交项=(fromcinctx.Customerswherec.City.Contains("

)selectc).Intersect

SELECTDISTINCT[t0].[CustomerID],[t0].[CompanyName],[t0].[ContactName],[t0].[ContactTitle],[t0].[Address],[t0].[City],[t0].[Region],[t0].[PostalCode],[t0].[Country],[t0].[Phone],[t0].[Fax]

WHERE(EXISTS(

SELECTNULLAS[EMPTY]

FROM[dbo].[Customers]AS[t2]

WHERE([t1].[CustomerID]=[t2].[CustomerID])AND([t2].[ContactName]LIKE@p0)

))AND([t1].[City]LIKE@p1)

ORDERBY[t1].[ContactName]

排除相交项(说明:

排除相交项;

即是从某集合中删除与另一个集合中相同的项。

先遍历第一个集合,找出所有唯一的元素,然后再遍历第二个集合,返回第二个集合中所有未出现在前面所得元素集合中的元素。

查询城市包含A的顾客并从中删除姓名以A开头的顾客,并按照顾客名字排序

var排除相交项=(fromcinctx.Customerswherec.City.Contains("

)selectc).Except

W

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 远程网络教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1