请问字段中有NULL值,对MIN MAX两函数执行结果的影响 谢谢大家

fgreceww 2015-12-15 10:52:11
请问字段中有NULL值,对MIN MAX两函数执行结果的影响,谢谢大家
...全文
5739 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxiangqing 2015-12-17
  • 打赏
  • 举报
回复
null是会过滤掉的
  • 打赏
  • 举报
回复
引用 7 楼 fgreceww 的回复:
[quote=引用 6 楼 duanzi_peng 的回复:] 从源头处理,设置个 默认值
非常感谢,但是,字符串型字段不好设置默认值吧?[/quote] 可以默认设置个 空字符串。
fgreceww 2015-12-17
  • 打赏
  • 举报
回复
引用 6 楼 duanzi_peng 的回复:
从源头处理,设置个 默认值
非常感谢,但是,字符串型字段不好设置默认值吧?
等不到来世 2015-12-17
  • 打赏
  • 举报
回复
1. 如果该字段的值全部是NULL, 则MIN和MAX的结果均为NULL. 2. 如果该字段包含非NULL值,则MIN/MAX先过滤掉所有NULL值,然后在非NULL值中找最小/最大值。
  • 打赏
  • 举报
回复
从源头处理,设置个 默认值
wanghan226 2015-12-16
  • 打赏
  • 举报
回复
最简单的办法,转化null值为数值 max(isnull(字段,0))
唐诗三百首 2015-12-15
  • 打赏
  • 举报
回复
如果字段中有NULL值, MIN和MAX函数执行时, 是忽略这些null值的.
Yole 2015-12-15
  • 打赏
  • 举报
回复

create table #tab
(
col1 varchar(10)  null,
col2 int  null
)

insert into #tab
select null,null union all
select 'a',1 union all
select 'b',-1 union all
select 'c',0 union all
select 'aa',100 union all
select '1',-100 


select MAX(col1),MAX(col2),MIN(col1),MIN(col2) from #tab 

drop table #tab
/*

(6 行受影响)
                                  
---------- ----------- ---------- -----------
c          100         1          -100
警告: 聚合或其他 SET 操作消除了 Null 值。

(1 行受影响)
*/



可以看到,再取最大最小值的时候,是排除null值的然后取数的。
中国风 2015-12-15
  • 打赏
  • 举报
回复
通常要转换 不能判断结果集是否成立时这样用 isnull( max(Num),0)--为null转为0 null为默认的值 如: declare @i int=10 select @i=MAX(10) where 1=0 SELECT @i /* NULL */
LongRui888 2015-12-15
  • 打赏
  • 举报
回复
会有影响: 消息 8117,级别 16,状态 1,第 4 行 操作数数据类型 NULL 对于 max 运算符无效。 如果你的某一列中,全是null,当max的时候,就会报错。 如果这一列不都是null,那么max就是求出最大值,min就是求出最小值

34,870

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧