是否可以在SQL查询中定义本地函数?

时间:2010-07-02 19:43:59

标签: sql-server tsql user-defined-functions

我有一个复杂的表达式来计算我必须在多个日期列上使用的日期的值 我可以在查询中定义临时本地函数,以避免复制和粘贴此表达式。 ?

像:

create MyLocalFunc(@ADate datetime) 
returns int as
begin
  blablabla
end

select
  MyLocalFunc(col1), col2, MyLocalFunc(col3), col4, MyLocalFunc(col5)
from
  mytable

作为解决方法,我知道我可以做CREATE FUNCTION // DROP FUNCTION,但我宁愿避免它。

3 个答案:

答案 0 :(得分:7)

不,没有办法 - 创建/删除是唯一的选择。

答案 1 :(得分:1)

SQL Server通过将查询放在BEGIN / END块中来支持anonymous blocks,但我无法找到有人在其中定义函数的示例。甲骨文有一段时间的功能......

答案 2 :(得分:-1)

不,不是本地的。但是您可以在数据库中创建一个UDF,它不必实际访问任何数据来进行计算。

为什么不把它变成永久的UDF?