Value | Catalog |
1 | CatalogA |
2 | CatalogB |
3 | CatalogB |
3 | CatalogA |
4 | CatalogA |
6 | CatalogB |
要求:按照Catalog来汇总value的乘积
自定义函数中的输入参数只能使用标量值,不能把table当参数输入!
而存储过程的输入参数则不同:
数的数据类型。所有数据类型(包括 text、ntext 和 image)均可以用作存储过程的参数。不过,cursor 数据类型只能用于 OUTPUT 参数。如果指定的数据类型为 cursor,也必须同时指定 VARYING 和 OUTPUT 关键字
因为自定义函数可以返回一个表。
- 函数中可以使用函数
- 函数中不能使用存储过程
- 存储过程中可以使用函数
- 但存储过程中不能使用存储过程
- 事实上,存储过程能使用存储过程,比如这样:在procedure2 里面可以这样使用exec Procedure1,不过这样使用意义不是很大
创建一个自定义标量值函数
用于计算某个catalog的乘积















创建存储过程





















这样就可以得到一个乘积汇总的数据了。
当然如果还要加限制条件,可以把函数和存储过程中的TableOne换成一个带表值的自定义函数
如果大家还有好的办法,请指教12。