Select 序列号作为行作为用户定义函数的输入

Select sequential numbers as rows to serve as inputs to a user defined function

我有一个标量值函数,它接受一个整数作为它的输入之一。我需要一个针对整数集 (1,2,3,4,5) 运行该函数的查询。这是我到目前为止所做的:

SELECT dbo.MyFunction('2016-05-13', Number) 
FROM (SELECT TOP 5 ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS Number FROM SomeTable) AS T

这行得通。有没有办法不用 FROM SomeTable 就可以做到这一点,因为我实际上并没有使用 table 中包含的任何信息?

或者,是否有更简洁的方式来编写整个查询?

从 SQL Server 2008 开始,我们有 table value constructors:

SELECT dbo.MyFunction('2016-05-13', Number) 
FROM (VALUES (1), (2), (3), (4), (5)) AS T(Number)

如果“5”是任意数字,并且您需要在任何连续序列上 运行,您仍然需要使用某种 nums table。我没有在这里重复各种技术,而是参考 this question 及其答案。