【问题标题】:SQL User Defined Function Within Select选择中的 SQL 用户定义函数
【发布时间】:2010-09-26 16:53:02
【问题描述】:

我在 SQL 中有一个名为 getBuisnessDays 的用户定义函数,它接受 @startdate 和 @enddate 并返回两个日期之间的工作日数。如何在我的选择中调用该函数?

这就是我想做的……

SELECT getBusinessDays(a.opendate,a.closedate) 
FROM account a
WHERE ...

【问题讨论】:

  • 请记住,UDF 通常会影响查询性能,具体取决于优化器对它们的反应。它们通常意味着逐行处理而不是基于集合。对于您的情况,您最好使用日历表并在需要时进行选择。

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


【解决方案1】:

如果是表值函数(返回表集) 您只需将其作为表格加入

此函数生成一个包含所有传递的逗号分隔列表中的值的列表

SELECT * FROM dbo.udf_generate_inlist_to_table('1,2,3,4')

【讨论】:

    【解决方案2】:

    是的,你几乎可以做到这一点:

    SELECT dbo.GetBusinessDays(a.opendate,a.closedate) as BusinessDays
    FROM account a
    WHERE...
    

    【讨论】:

    • 该死 - 打败我 - 你需要所有者前缀
    【解决方案3】:

    使用标量值 UDF,而不是表值 UDF,然后您可以根据需要在 SELECT 中使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-30
      • 1970-01-01
      相关资源
      最近更新 更多