-2

我只是想问一下我是否能够根据我将从数据库中检索的内容创建一个动态编号列?

前任。

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  | 
4

3 回答 3

2

您可以使用以下row_number()功能:

select  row_number() over (order by ReservationNo) as Counter
,       *
from    YourTable
order by 
        ReservationNo
于 2013-02-16T19:28:45.233 回答
1

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

于 2013-02-16T19:30:55.827 回答
1

似乎您需要使用每个条件/查询获取的表中可用行的总数。如果是这种情况 COUNT(*) OVER() 将满足您的要求。

SELECT ReservationNo ,ClientNo ,DateAdded ,DateModified ,COUNT(*) OVER() FROM Reservations WHERE 条件(如果需要)

于 2013-02-16T19:47:37.117 回答