代码之家  ›  专栏  ›  技术社区  ›  Francesca

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

  •  21
  • Francesca  · 技术社区  · 15 年前

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

    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 回复  |  直到 15 年前
        1
  •  11
  •   Ben M    15 年前

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

        2
  •  1
  •   OMG Ponies    15 年前

    SQL Server支持 anonymous blocks 通过将查询放在BEGIN/END块中,但我还没有找到一个示例,说明有人在其中定义了函数。甲骨文已经有一段时间了。。。