从SQL Server计算检索记录

时间:2013-02-16 19:25:33

标签: sql-server count records

我只想询问我是否可以根据从数据库中检索的内容创建动态编号列?

实施例

Table Reservations
|ReservationNo----ClientNo------DateAdded----DateModified|
|1             |    1        |   01-01-01  |  01-01-01 |  
|2             |    2        |   01-01-01  |  01-01-01 | 
|3             |    2        |   01-01-01  | 01-01-01  | 
|4             |    2        |   01-01-01  | 01-01-01  | 
|5             |    1        |   01-01-01  | 01-01-01  | 
|6             |    3        |   01-01-01  | 01-01-01  |              
|7             |    3        |   01-01-01  | 01-01-01  | 
|8             |    2        |   01-01-01  | 01-01-01  | 
|9             |    1        |   01-01-01  | 01-01-01  | 
|10            |    1        |   01-01-01  | 01-01-01  | 

当我执行以下声明时......

SELECT * FROM Table WHERE ClientNo = '1'

结果:

**Counter**-----ReservationNo----Client--------DateAdded----DateModified|
|1       |      1          |    1        |   01-01-01  |  01-01-01 |  
|2       |      5          |    1        |   01-01-01  | 01-01-01  | 
|3       |      9          |    1        |   01-01-01  | 01-01-01  | 
|4       |      10         |    1        |   01-01-01  | 01-01-01  | 

3 个答案:

答案 0 :(得分:2)

您可以使用row_number()功能:

select  row_number() over (order by ReservationNo) as Counter
,       *
from    YourTable
order by 
        ReservationNo

答案 1 :(得分:1)

您似乎正在搜索ROW_NUMBER函数,请参阅http://msdn.microsoft.com/de-de/library/ms186734.aspx

答案 2 :(得分:1)

您似乎需要总计每个条件/查询所获取的表中的可用行数。 如果是这样,COUNT(*)OVER()将符合您的要求。

SELECT ReservationNo        ,ClientNo        ,添加日期        ,DateModified        ,COUNT(*)OVER() 来自预订 如果需要,在哪里条件