如何制作一个功能?

时间:2015-10-19 03:59:32

标签: sql sql-server sql-server-2008 function stored-procedures

我有一个程序,我希望它将其转换为函数,以便我可以在where子句中使用它。问题在于我的程序将多个列返回到3.同样基于输入参数,行可以在1到3之间变化。它需要两个日期(开始日期和结束日期)作为数据类型的输入'日期&#39 ;.

我可以发布我的程序的输出 -

输出-1

Type               Start date              End date                             
  1                 20150607               20150701

输出-2

Type               Start date               End date                             
  1                 20150603               20150607
  2                 2015071                2015083
  1                 20150817               20150820

输出-3

Type               Start date               End date                             
  1                 20150607             20150630
  3                 201507               201509
  1                 20151001             20151008

我发布了3个我的程序输出还有更多,但它们只是这样的相似。

现在在where子句中,我想使用每个行的开始日期和结束日期及其类型。

类型只是日期类型,无论是日级信息还是周级信息或月级信息

1 is  day level info
2 is  week level info
3 is  month level info

如何在where子句中使用该开始日期和结束日期作为过程返回的每行日期之间的日期?

我需要帮助,因为有不同类型的功能,哪一种适合我的要求。我需要做些什么改变来从程序中创建一个函数?

1 个答案:

答案 0 :(得分:0)

您可以创建一个函数来返回包含所需列的表格,例如:

功能

创建功能ufn_RetImages(@Date varchar(8)) 退货表 如 返回 (     选择         ImageBildID为ImageBildID,         将(varchar,DateCaptured_SD,112)转换为dateT     从         dbo.ImageBild_T     哪里     convert(varchar,DateCaptured_SD,112)= @Date
);

并在使用参数必需的

调用函数之后

从dbo.ufn_RetImages('20130612')

中选择*