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 及其答案。
我有一个标量值函数,它接受一个整数作为它的输入之一。我需要一个针对整数集 (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 及其答案。