用CLR写函数:标量函数,表值函数 很好理解,如果用聚合函数则不是那么好理解了,
这里将CLR函数说明一下,其实关键是对聚合函数说明
用CLR写聚合函数关键点,是要理解CLR与SQL是如何进行数据交互的,
第一步:聚合函数中各函数的作用
第二步:聚合函数调用顺序
第三步:聚合函数在实际SQL中调用次数
注意:将CLR 变量数据输时,数据类型是对象或List时,请在Write方法时转换好,如果在Terminate转换会报错。
正确转换如下所示:
/// <summary>
/// 写
/// </summary>
/// <param name="w"></param>
public void Write(System.IO.BinaryWriter w) //
{
w.Write(string.Join(Separate_, ValueList.OrderBy(tt => tt.orderno).Select(tt => tt.itemstring).ToArray()));
w.Write(Separate_);
}