【发布时间】:2017-08-08 16:23:11
【问题描述】:
我使用以下返回上周的财政周数
SELECT (
SELECT
CA.FISCALWEEK
FROM
EUUKSQL01.DASHBOARD.DBO.CALENDAR CA
WHERE
CONVERT(DATE,GETDATE()) = CONVERT(DATE,CA.FULLDATE) ) - 1
如果我在查询中大量使用它,我会声明并将其设置为@LW 等。
我也将它创建为 FUNCTION,
使用一种方法比另一种方法有什么好处吗?
【问题讨论】:
-
如果你使用一个变量,数据库只会执行一次查询,但是如果你将该查询创建为一个函数并从许多地方调用它,数据库每次都会执行它。这意味着设置一个局部变量应该有更好的性能。
-
该函数使代码可重用。
-
视图是最好的选择——它是可重用的并且提供了良好的性能。
标签: sql sql-server function declare