【问题标题】:Is it possible to define a local function in a TSQL query?是否可以在 TSQL 查询中定义本地函数?
【发布时间】:2011-03-11 06:24:36
【问题描述】:

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

喜欢:

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,但我宁愿避免使用它。

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

  • 这个答案提到了一种可能的方式:stackoverflow.com/a/981461/750216
  • @RăzvanFlaviusPanda 您链接到的答案建议创建/删除方法,这里的答案已经提到。
【解决方案2】:

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

【讨论】:

  • 您能详细解释一下 SQL Server 中的匿名块吗?该链接已损坏,我自己找不到任何东西。
猜你喜欢
  • 1970-01-01
  • 2011-06-14
  • 1970-01-01
  • 2016-09-15
  • 2013-06-05
  • 2011-12-24
  • 2020-08-24
  • 2010-09-25
  • 2019-10-25
相关资源
最近更新 更多