2008-12-12 33 views
43

我在SQL中有一個用戶定義的函數,名爲getBuisnessDays,它採用@startdate和@enddate並返回兩個日期之間的工作日數。如何在我的選擇中調用該功能?SQL中的用戶定義函數選擇

這是我想要做的..

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

請記住,UDF通常可以根據優化器對它們的反應來終止查詢性能。它們通常意味着逐行處理而不是基於集合。對於您的情況,您最好使用日曆表並根據需要進行選擇。 – 2008-12-12 20:11:04

回答

77

是的,你幾乎可以做什麼:

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

該死的 - 打敗我 - 你需要所有者的前綴 – 2008-12-12 19:25:27

5

使用標量值UDF,而不是表值之一,那麼你可以在你想要的SELECT中使用它。

5

如果它是一個表值函數(返回表集) 您只需加入它作爲一個表

此函數生成與通過逗號分隔的列表中的所有值一頁的表

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