c语言 max=min=sum=tm,EF 汇总函数使用注意事项Max()/Min()等

一、字符串类型最大值

1.字符串类型的最大值,和数据库的字典排序最后一个相同,如果存在返回null

//字符串最大值,是字典排序最后一个

string max1 = _context.students.Max(q => q.sname);

Console.WriteLine(max1);

//字符串最大值,如果不存在返回null

string max2 = _context.students

.Where(q => false)

.Max(q => q.sname);

Console.WriteLine(max2);

Console.WriteLine(max2 == null); //True

Console.WriteLine(max2 == ""); //False

//字符串最大值,是字典排序最后一个

string max1 = _context.students.Max(q => q.sname);

Console.WriteLine(max1);

//字符串最大值,如果不存在返回null

string max2 = _context.students

.Where(q => false)

.Max(q => q.sname);

Console.WriteLine(max2);

Console.WriteLine(max2 == null); //True

Console.WriteLine(max2 == ""); //False

二、数字类型最大值

1.数字类型最大值,和数据库字段排序最后一个相同,如果没有数据抛出异常。

//数字类型,获取最大值为正序排列最后一个值

decimal deci1 = _context.scores.Max(q => q.degree);

Console.WriteLine(deci1);

//数字类型,获取最大值为正序排列最后一个值

decimal deci1 = _context.scores.Max(q => q.degree);

Console.WriteLine(deci1);

数字类型,获取条件的数据不存在抛出异常

其他信息: 到值类型“System.Decimal”的强制转换失败,因为具体化值为 null。

结果类型的泛型参数或查询必须使用可以为 null 的类型。

decimal deci2 = _context.scores.Where(q => false).Max(q => q.degree);

Console.WriteLine(deci2);

decimal deci2 = _context.scores.Where(q => false).Max(q => q.degree);

Console.WriteLine(deci2);

解决方案1:

//解决方案1,使用DefaultIfEmpty(),推荐

var query = _context.scores.Where(q => false)

.Select(q => q.degree)

.DefaultIfEmpty();

Console.WriteLine(query.ToString());

decimal deci3 = query

.Max();

Console.WriteLine(deci3);

//解决方案1,使用DefaultIfEmpty(),推荐

var query = _context.scores.Where(q => false)

.Select(q => q.degree)

.DefaultIfEmpty();

Console.WriteLine(query.ToString());

decimal deci3 = query

.Max();

Console.WriteLine(deci3);

生成sql如下:

25cd788b3b221b092aeff59f612847ca.png

解决方案2:

//解决方案2,先判断再取值,执行两次数据库查询

decimal deci4 = 0;

if (_context.scores.Any())

{

deci4 = _context.scores.Max(q => q.degree);

}

Console.WriteLine(deci4);

//解决方案2,先判断再取值,执行两次数据库查询

decimal deci4 = 0;

if (_context.scores.Any())

{

deci4 = _context.scores.Max(q => q.degree);

}

Console.WriteLine(deci4);

解决方案3:

//解决方案3,内存取最大值

decimal deci5 = _context.scores

.Select(q => q.degree)

.ToList()

.Max();

Console.WriteLine(deci5);

//解决方案3,内存取最大值

decimal deci5 = _context.scores

.Select(q => q.degree)

.ToList()

.Max();

Console.WriteLine(deci5);

74.Python中ORM聚合函数详解:Max,Min

Max和Min:获取指定对象的最大值和最小值. 1. 比如:想要获取Author表中的最大的年龄和最小的年龄.示例代码如下: from django.http import HttpResponse ...

MySQL之汇总数据(AVG,COUNT,MAX,MIN,SUM)

table test Field Type Null Key Default Extra id int(11) NO PRI NULL auto_increment name char(50) NO ...

聚合函数:sum,avg,max,min,count

group by  分组的使用方法 数学函数:ABS.ceiling.floor.power.round.sqrt.square 练习:

max,min,Zip函数(十一)

zip函数,拉链,传两个有序的参数,将他们一一对应为元祖形式 max,min比较默认比较一个元素,处理的是可迭代对象,相当于for循环取出每个元素进行比较,注意:不同类型之间不可比较 #!/usr/b ...

group by与avg(),max(),min(),sum()函数的关系

数据库表: create table pay_report(     rdate varchar(8),     --日期     region_id varchar(4),    --地市      ...

Python之路Python内置函数、zip()、max()、min()

Python之路Python内置函数.zip().max().min() 一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算, ...

随机推荐

java.sql.SQLSyntaxErrorException: ORA-00936: 缺失表达式。

今天遇到一个很奇怪的问题,sql报表达式错误,于是我把报错的那句sql(红色)放到数据库中执行,没有报错啊!百思不得其解! 呼!我已经提醒自己去注意看黑色的console信息了,得到了传参的参数值,但 ...

新增的querySelector、querySelectorAll测试

从IE9开始DOM开始支持支持CSS的选择器了,DOM提供了两个接口 querySelector 得到一个DOM querySelectorAll 得到一组DOM 一个个的解释这些选择器也没有必要,我 ...

WIKIOI 1222信与信封问题

题目描述 Description John先生晚上写了n封信,并相应地写了n个信封将信装好,准备寄出.但是,第二天John的儿子Small John将这n封信都拿出了信封.不幸的是,Small Joh ...

hive字符串函数

1. 字符串长度函数:length 语法: length(string A) 返回值: int 说明:返回字符串A的长度 举例: hive> select length('abcedfg') f ...

Asp.Net Identity 2.0 认证

转Asp.Net Identity 2.0 认证 一个星期前,也就是3月20日,微软发布了Asp.Net Identity 2.0 RTM.功能更加强大,也更加稳定.Identity这个东西现在版本还 ...

docker 9 docker的容器命令

有镜像才能创建容器,这是根本的前提 下面我们以下载一个centos镜像来做演示. [root@t-docker chenzx]# docker images REPOSITORY TAG IMAGE ...

list类型功能剖析

append  向后追加 name_list=["eirc","alex","tony"] name_list.append('seven' ...

mysql binlog日志自动清理及手动删除

说明:当开启mysql数据库主从时,会产生大量如mysql-bin.00000* log的文件,这会大量耗费您的硬盘空间.mysql-bin.000001mysql-bin.000002mysql-b ...

Windows Phone本地数据库(SQLCE):8、DataContext(翻译)

这是“windows phone mango本地数据库(sqlce)”系列短片文章的第八篇. 为了让你开始在Windows Phone Mango中使用数据库,这一系列短片文章将覆盖所有你需要知道的知 ...

OAuth 白话简明教程 4.刷新 Access Token

转自:http://www.cftea.com/c/2016/11/6705.asp OAuth 白话简明教程 1.简述 OAuth 白话简明教程 2.授权码模式(Authorization Code ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值