问题补充说明:declare @t table( id int identity(1,1), UserId varchar(10), Odds int)insert @t select 'a',12union all select 'b',23union all select 'c',34select isnull(userid,'total') as userid, sum(odds) as oddsfrom @tgroup by useridwith rollup/**userid odds--------------a 12b 23c 34total 69**/大家帮我看看这段代码是什么意思啊!尤其是isnull和with rollup谢谢大家了!
1.ISNULL
使用指定的替换值替换NULL。
语法
ISNULL(check_expression,replacemen换两刘棉补识院跟投板背t_value)
2.ROLLUP()
生成简单的GROUPBY聚合行以及小计行或超聚合行,相切先还生成一个总计行。
返回的分组数等于<composi煤处打雨片逐足teelementlist>中的表达式数加一。例如,请考虑下面的语句。
SELECTa,b须犯江战烈运诉引灯,c,SUM(<expression>)
FROMT
GROUPBYROLLUP(a,b,c)
会为(a,b,c)、(a,b)和(a)值的每个唯一组合生成一个带有小计的行。还将计算一个总计行。
列是按照从右到左的顺序汇总的九费生。列的顺序会影响ROLLUP的输出分组,而且可能会影响结果集内的行数。
帮助上找了段,解释的比较详细。
标签:sql,isnull,用法