创建一个临时表,用于演示sqlserver语法中的聚合函数:最大值MAX的使用IF OBJECT_ID('tempdb..#tmp1') IS NOT NULL DROP TABLE #tmp1; CREATE TABLE #tmp1( Col1 varchar(50), Col2 int, Col3 varchar(50) );
往临时表中插入几行测试数据,其中包括插入Null值,看看Null在最大值中是如何表现的insert into #tmp1(Col1, Col2, Col3) values('Code1', 1, 'a');insert into #tmp1(Col1, Col2, Col3) values('Code2', 2, 'b');insert into #tmp1(Col1, Col2, Col3) values('Code3', null, 'c');insert into #tmp1(Col1, Col2, Col3) values('Code4', 4, null);insert into #tmp1(Col1, Col2, Col3) values('Code5', 5, 'e');
查询临时表中的测试数据select * from #tmp1;
使用max直接获取整型栏位Col2的最大值,从运行结果可以看出,null直接被max忽略了select MAX(Col2) from #tmp1;
使用max直接获取整型栏位Col2的前三行记录中的最大值,运行结果1、2、null使用max获取的最大值是2select MAX(Col2) from #tmp1 where Col1 in ('Code1', 'Code2', 'Code3');
使用max直接获取字符串类型栏位Col3的最大值,从运行结果可以看出,字符串是按照字母顺序比较大小的,且也忽略了null值select MAX(Col3) from #tmp1;
使用max直接获取字符串类型栏位Col3的前四行记录中最大值,运行结果a、b、c、null使用max获取的最大值是cselect MAX(Col3) from #tmp1 where Col1 in ('Code1', 'Code2', 'Code3', 'Code4');