【发布时间】:2010-10-30 11:54:10
【问题描述】:
这是我为创建场景而编写的代码:
USE tempdb
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.Emp') AND type in (N'U'))
DROP TABLE Emp
GO
CREATE TABLE Emp(
EmpID Int Identity(10,1) Primary Key,
EmpGroupID Int)
GO
INSERT INTO Emp(EmpGroupID) VALUES(1000)
INSERT INTO Emp(EmpGroupID) VALUES(1000)
INSERT INTO Emp(EmpGroupID) VALUES(1000)
INSERT INTO Emp(EmpGroupID) VALUES(2000)
INSERT INTO Emp(EmpGroupID) VALUES(2000)
INSERT INTO Emp(EmpGroupID) VALUES(2000)
INSERT INTO Emp(EmpGroupID) VALUES(3000)
GO
SELECT * FROM Emp
ORDER BY EmpGroupID,EmpID
我需要的是每个组都有一个计数器变量,递增 1,这样组 1000 的所有行的计数器 = 1,groupid = 2000 的计数器 = 2,groupid = 3000 的计数器 = 3。
SELECT ?,EmpID,EmpGroupID
FROM Emp
ORDER BY EmpGroupID,EmpID
-- The result I'm looking for is:
1,10,1000
1,11,1000
1,12,1000
2,13,2000
2,14,2000
2,15,2000
3,16,3000
【问题讨论】:
-
添加一个更具描述性的标题,并澄清您的问题。什么不符合您的预期?
-
是的,你到底想做什么?
-
编辑真的很有帮助。谢谢。
-
为什么这里的人从不指定他们使用的是哪个 DBMS?似乎大多数人都暗示 SQL = MS SQL Server 。但是,请指定!