【问题标题】:How to call a function properly as part of a query如何在查询中正确调用函数
【发布时间】:2013-02-01 23:49:30
【问题描述】:

我不熟悉在查询中调用存储函数和存储过程。有人可以帮助我了解如何比我在下面更好地调用存储的函数。似乎必须有一种更现实、更合乎逻辑的方式才能让代码流动起来。这似乎有点疯狂。

SELECT        SUM(TotalAmt) AS [Total Amount]
FROM            dbo.fDataamount('1', @startdate, @enddate, '1', '1', 'Total', 'Total', 'Total', 'Total', '1', '1', '1', '1', '1') AS fDataamount_1
WHERE        (DataID = 55)

【问题讨论】:

  • 您只是想知道语法吗?这看起来像是向我调用存储函数的标准方式。也就是说,如果确实需要 14 个参数来执行该功能,我可能会建议重构您的逻辑......
  • 如果您可以发布您的 fDataamount 函数,那么我们可以帮助重构它。也许有样本数据和所需的输出。

标签: sql sql-server sql-server-2005 stored-procedures


【解决方案1】:

您的查询不起作用吗?或者您是否正在寻找一种更好的书写方式。

如果它不起作用,请检查以确保它是一个表值函数。

我还会查看该功能的使用频率。只有当我可以整合跨多个存储过程使用的代码以便于维护时,我才更喜欢使用函数。

如果该函数仅用于这一存储过程,请考虑在临时表或 CTE 中创建数据集并引用它。

我从您的查询中可以看出,您实际上是从函数返回的表中取出一列的总和。为什么要费心使用一个函数呢?您可以将该逻辑从函数中取出并将其直接放入查询中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 2019-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    相关资源
    最近更新 更多