假设一个表:
CREATE TABLE [SoMetable] (
[id] INTEGER,
[order] INTEGER,
PRIMARY KEY ([id], [order])
);
在Microsoft sql Server 2000中获得此权限的一种方法是使用子查询对具有相同ID和较低顺序的行进行计数。
SELECT *, (SELECT COUNT(*) FROM [SoMetable] counter
WHERE t.id = counter.id AND t.order < counter.order) AS row_num
FROM [SoMetable] t
现在是2010年。很快,您的sql Server将足够老,可以驱动了。
如果您使用sql Server 2005或更高版本,则将获得诸如的出色新功能ROW_NUMBER() OVER (PARTITION...)
。