tnblog
首页
视频
资源
登录

重要sql语句和linq,lamdba分组条件查询语句

5782人阅读 2019/10/24 17:20 总访问:400313 评论:5 收藏:0 手机
分类: Mvc EF框架

每天记录一点点


我希望有个如你一般的人

我希望有个如你一般的人,如山间清爽的风,如古城温暖的光,从清晨到夜晚,由山野到书房,一切问题的答案都很简单。我希望有个如你一般的人,贯彻未来,数遍生命的每个站点。


我们先分享一些经常用到的Sql语句

1,循环添加多条数据语句

--定义

declare @count int=1;

while @count<20

begin

  --CAST:类型转换

insert into Users values('知青少年'+CAST(@count as nvarchar),'yh','2','文学社',null,null);


set @count=@count+1;

end


2,查询分页的sql语句

select * from (select ROW_NUMBER() over(order by id) as rowNumber,* from Users)

temp where rowNumber between 1 and 5;


-- 联表查询

selectu.UserName,p.Father,p.Mather   fromUsersuleftjoinUser_Parentponu.Id=p.UserId;

三表查询

--join :显示查询左右的数据,只要有为空的就不查询显示

-- left join:显示左边所有的数据,如果右边没有与之匹配的就默认为空(要查询显示)

select u.UserName,p.Father,p.Mother,s.Sub,s.Score from Users u

leftjoin User_Parent p on u.Id=p.UserId

leftjoin User_Score s on u.Id=s.UserId;

-- 分组查询注意事项:用了groupbysql语句,前面只能查分组的内容,查其他的话则报错

-- 解决方案:1,用运算方法让查询内容和分组内容一一对应,(如分组1例子)

-- 分组1

select Sub as '科目',SUM(Score)as '总分',max(Score)as '最高分',min(Score)as '最低分',avg(Score)as'平均分from User_Score group by Sub

-- 分组查询加条件时:

Eg: 最高分:分数大于60

方法1

select Sub as '科目',max(Score)as '最高分from User_Score   group by Sub having max(Score)>60

方法2:子查询作为一个临时变量表temp ,临时字段maxscore 进行查询(好处:不用带运算法则)

selectfrom

(select Sub as '科目',max(Score)as maxscore from User_Score   group by sub)temp where maxscore>60


 下面是Mvc EF 的后台代码


  1. //三表联查的lamdba 语句
  2.             varquery=oae.Users.GroupJoin(oae.User_Parent, a=>a.Id, b=>b.UserId, (a, b) =>new
  3.                  {
  4.                      //把Id带着走
  5.                      uid=a.Id,
  6.                      UserName=a.UserName,
  7.                      parents=b
  8.                  }).SelectMany(a=>a.parents.DefaultIfEmpty(), (a, b) =>new
  9.                  {
  10.                      uid=a.uid,
  11.                     UserName=a.UserName,
  12.                      Father=b.Father
  13.                  }).GroupJoin(oae.User_Score, a=>a.uid, b=>b.UserId, (a, b) =>new
  14.                  {
  15.                      //最后不用带Id
  16.                      UserName=a.UserName,
  17.                      Father=a.Father,
  18.                      score=b
  19.                  }).SelectMany(a=>a.score.DefaultIfEmpty(), (a, b) =>new
  20.                  {
  21.                      UserName=a.UserName,
  22.                      Father=a.Father,
  23.                      sub=b.Sub,
  24.                      Score=b.Score
  25.                  });
  26.                  
  27.                varresult=query.ToList();
  28. ---------------------------------分组查询分数的条件语句-------------------------------------------------------
  29.             linq
  30.             varquery=from score in oae.User_Score
  31.                         group score by score.Sub into grouptemp
  32.                         select new
  33.                         {
  34.                             sub=grouptemp.Key,
  35.                             sum=grouptemp.Sum(a=>a.Score),
  36.                             max=grouptemp.Max(a=>a.Score),
  37.                             min=grouptemp.Min(a=>a.Score),
  38.                             avg=grouptemp.Average(a=>a.Score)
  39.                         };
  40. //lamdba
  41.             //AllScoreModel:返回的是json对象,要用集合接收,所以要ToList();
  42.             List<AllScoreModel>result2=oae.User_Score.GroupBy(a=>a.Sub).Select(grouptemp=>newAllScoreModel
  43.             {
  44.                 sub=grouptemp.Key,
  45.                 sum=grouptemp.Sum(a=>a.Score),
  46.                 max=grouptemp.Max(a=>a.Score),
  47.                 min=grouptemp.Min(a=>a.Score),
  48.                 avg=grouptemp.Average(a=>a.Score)
  49.                
  50.             }).Where(a=>a.max>60).ToList();   //最高分大于60的



不用看啦,到底部啦,更多小知识请关注留言哦

评价

剑轩

2019/10/24 21:59:25

开头那句诗句写得很好哇!

陪你听风:@剑轩剑哥开玩笑拉,用的你的模版撒.hahaha

2019/10/25 11:21:50 回复

剑轩:@陪你听风没有没有,后面是你自己写的哇

2019/10/25 12:03:10 回复

陪你听风:@剑轩我只是在完美的基础上稍微添了一笔,嘿嘿

2019/10/25 12:56:10 回复

剑轩:@陪你听风[斜眼笑]就更加完美了!

2019/10/25 13:00:28 回复

我觉得在感情中,细节真的太重要了。

如果你把我规划进了你的未来里,我也会愿意一直拉着你的手走很久很久,如果你愿意在每一个细节里爱我的话。在爱情里,其实...

如何修改重置MD5加密后的sql用户密码

二次开发时,要加一个忘记密码的功能,后台写了修改密码的方法,数据库执行也修改成功,但是登录一直提示密码错误。之所以...

sql Server的几种分页方式和效率

--topnotin方式 selecttop条数*fromtablename whereIdnotin(selecttop条数*页数Idfromtablename) --ROW_NUMBER()O...

Mysql主从复制+读写分离

使用Mysql读写分离和主从复制的原因:*单台MySQL服务器的安全性,高可用性,高并发都是不满足实际的生产需要。介绍:1.MySQ...

sql Server 中使用游标

--声明一个游标 DECLAREMyCursorCURSOR FORSELECTTOP5FBookName,FBookCodingFROMTBookInfo//定义一个叫MyCursor的游标,...

Mysql控制台插入中文数据报错1366解决

计算机配置: windows系统.数据库:MySQL5.5.如图 : 下图为表结构信息:通过 show full columns from userinfo;查询所得 na...

sqlserver order by

order by 字段名order by 第几个字段(整形)order by 排序:order by 字段名:通过字段名指定的字段排序 order by 字段数...

sqlserver保障远程连接的安全性

如果是只读的话建个视图,建个普通用户只对该视图进行读。读写的话就只能自己在加一层代理服务,由代理来进行读写,各客户...

sqlerver添加用户与授权

添加用户安全性--&gt;登录名,然后右键新建登录名就可以了然后填写好相关信息就可以了右键属性,用户映射可以选择该用户可...

Mysql 游标创建

游标:可以来存储一个结果集,可以通过遍历来访问到每一个数据需求:分表数据。 把一张表的数据根据需求分离,创建不同的表...

没有为 sql 缓存通知启用数据库

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql -S 数据库IP -U 登录名 -P 密码 -d 数据库名称 -t 表名 -et

sqlserver约束

添加表后操作约束--删除约束 altertableaj_testdropconstraintCK__aj_test__userAge__5EBF139D --为表aj_test添加默认...

c sql简单参数化写法

防止sql 注入的,简单参数化写法publicboolLogin(string_username,string_password) { using(SqlConnectionconn=newSqlCo...

mysql 存储过程报错:delimiter

最近刚学sql,学到了存储过程,每当练习的时候就一直出现问题。 现在记录CREATEPROCEDUREproc_out(OUTstuidINT) begin se...
你之所以觉得时间一年比一年过得快,是因为时间对你一年比一年重要。
排名
13
文章
64
粉丝
20
评论
30
MUI框架页面间的传值指针
XingDy姐 : 不错哦
MUI框架页面间的传值指针
剑轩 : 接口的真实地址可以用xx/yy什么的代替哦,真实地址还是隐藏一下好
.NET EF 用户按钮权限
YOU : 可以,在写文章的时候,有需要写代码的地方,可以选择编辑器上的代...
.NET EF 用户按钮权限
剑轩 : 哈哈哈哈,你这个追女生的逻辑
EF三种模式解析
剑轩 : 好文采!
重要sql语句和linq,lamdba分组条件查询语句
剑轩 : 开头那句诗句写得很好哇!
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术