首页 > 解决方案 > 在包含数字 1 到 1000 的视图中创建临时表

问题描述

我需要在一个视图中创建一个临时表,该表有一列的编号为 1 到 1000。关于如何执行此操作的任何想法?

我正在使用 SQL Server。

谢谢。

标签: sqlsql-servertsqlviewtemp-tables

解决方案


计数表解决方案是最好的(因为有索引),但如果您没有并且需要一个,您可以在紧要关头使用通用表表达式。

我通常使用 ROW_NUMBER() 和 sys.columns 表。如果我需要很多行,我会交叉连接回 sys.columns。

create view dbo.SomeView as 
with Tally as (
   select top(1000) row_number() over (order by A.object_id) as N
   from sys.columns A
   cross join sys.columns B -- If you need LOTS of rows, you add more cross joins
)
select *
  from something
  join Tally on Tally.N = something.N;

推荐阅读