T-SQL如何在SELECT查询中运行过程/函数?

时间:2010-10-11 14:34:40

标签: tsql

我现在无法检查(现在没有编译器),但该查询会执行吗?

select myTable.id_customer, [my_procedure_or_function](myTable.id_customer)

from myTable

group by myTable.id_customer

该过程/函数返回NUMERIC(18,0)或NULL

总结一下,我需要从该表中选择 distinct id_customer并获取该id - 获取当前与该id_customer关联的数字/ null值

2 个答案:

答案 0 :(得分:10)

从语法上讲,它适用于标量UDF,但不适用于存储过程。

select myTable.id_customer, mySchema.myFunction(myTable.id_customer) As myAlias
from myTable
group by myTable.id_customer

然而,根据标量UDF的作用,可能会有更多高性能的方法。例如,如果它在另一个表中查找值,通常最好将此逻辑内联到查询中。

答案 1 :(得分:1)

正如Martin Smith所说,提供它是一个标量用户定义函数(UDF),它除了与“myTable.id_customer”相同类型的单个参数,而不是表格或存储过程,并且执行连接具有执行权限对于UDF,它应该可以正常工作。