在整数上创建一个视图?

时间:2011-11-13 06:15:21

标签: sql function view

我有一个名为A的表。它只有一个带一个字段的记录。它是一个名为number的整数。 我想创建一个包含A.number记录的视图,每个记录都是少于A.number的数字之一。

例如:

选择A.number -----> 5

该视图应显示5条记录0 1 2 3 4

P.S:这是一个真正的问题,我简化了很多。真正的问题就是将固定期间的预算划分为每天。

2 个答案:

答案 0 :(得分:1)

这听起来有点像家庭作业,所以我很担心直接提供代码。

但是,我可以给出一个如何解决问题的指针。您使用递归CTE,其中每次迭代将一个迭代添加到上一次迭代。如果您要检查数字>请务必设置MAXRECURSION选项。 101.您可以使用标量子查询将视图键入原始表:


WITH numbers ( n ) AS (
    SELECT 0 UNION ALL
    SELECT 1 + n FROM numbers WHERE n < (select number from a) -1)
SELECT n FROM numbers
OPTION ( MAXRECURSION 500) --example

答案 1 :(得分:0)

如果你的桌子号码是&lt; 2048,你在SQL Server上,这将适合你:

CREATE VIEW MyView AS
   SELECT number
   FROM master..spt_values
   WHERE type = 'p'
      AND number < (SELECT value FROM yourTable)

或者,您可以考虑创建自己的Numbers表,其大小适合您的应用程序,如果您需要更高的限制,或者不是在提供给您的SQL Server上。 Here是一篇关于有关“数字表”的想法的博客文章的链接。