可以选择在结果表中添加新字段吗?

时间:2009-01-27 19:27:23

标签: sql-server tsql select

我在SQL Server 2005中有一个SQL语句,如下所示:

SELECT * INTO #TempTable FROM FirstTable WHERE <complex where clause>

我真正喜欢的是让生成的临时表有一个额外的字段,该字段本质上是一个整数字段,按照where子句返回记录的顺序从1开始计算。

这可能吗?

(基本上,我希望能够返回从第一个选择语句返回的记录的子集,沿着“第45到179行”。)

1 个答案:

答案 0 :(得分:5)

尝试使用Row_Number

-- insert into temp table
SELECT *, 
  ROW_NUMBER() OVER (ORDER BY SortColumn) AS SortColumn INTO #TempTable 
FROM FirstTable 
WHERE <complex where clause>

-- check the results and drop the table
SELECT * FROM #TempTable WHERE SortColumn BETWEEN 45 AND 179 ORDER BY SortColumn
DROP TABLE  #TempTable

显然,您需要将SortColumn替换为您案例中有意义的内容


修改

如果您只是尝试进行分页,那么有很多例子: