示例一
假定有下图所示的成绩表:

我们需要统计每一个科目的成绩分布范围,例如60分以下,60分以上,70分以上等等范围的人数,以及各个科目的最高分、最低分、平均分等:

采用自定义表达式,可以方便地统计出来:
Dim b As New SQLGroupTableBuilder("统计表1","学生成绩")
b.Groups.AddDef("科目")
b.Totals.AddDef("分数",AggregateEnum.Max,"最高分")
b.Totals.AddDef("分数",AggregateEnum.Min,"最低分")
b.Totals.AddDef("分数",AggregateEnum.Average,"平均分")
b.Totals.AddExp("分布_60以下","iif(分数 < 60,1,0)")
b.Totals.AddExp("分布_60-70","iif(分数 >= 60 And 分数 < 70,1,0)")
b.Totals.AddExp("分布_70-80","iif(分数 >= 70 And 分数 < 80,1,0)")
b.Totals.AddExp("分布_80-90","iif(分数 >= 80 And 分数 < 90,1,0)")
b.Totals.AddExp("分布_90-100","iif(分数 >= 90 And 分数 < 100,1,0)")
b.Totals.AddExp("分布_100-110","iif(分数 >= 100 And 分数 < 110,1,0)")
b.Totals.AddExp("分布_110-120","iif(分数 >= 110 And 分数 < 120,1,0)")
b.Totals.AddExp("分布_120-130","iif(分数 >= 120 And 分数 < 130,1,0)")
b.Totals.AddExp("分布_130-140","iif(分数 >= 130 And 分数 < 140,1,0)")
b.Totals.AddExp("分布_140以上","iif(分数 >= 140,1,0)")
b.build()
MainTable = Tables("统计表1")
SQL Server没有iif函数,需要用Case When语句代替。
请教:如何代替?有劳各位了