一个表tb1
A B
2000 1
2003 1
2000 2
2002 1
......
通过select * from tb1 order by A,B选出来以后
2000 1
2000 2
2000 3
......
2001 1
2001 2
.....这样,我想加一个字段C,C得值就是这个select 出来记录得序号,请问有什么SQL可以一把实现理想得结果是
A B C
2000 1 1
2002 1 300(假设排序号300)
2000 2 2
A B
2000 1
2003 1
2000 2
2002 1
......
通过select * from tb1 order by A,B选出来以后
2000 1
2000 2
2000 3
......
2001 1
2001 2
.....这样,我想加一个字段C,C得值就是这个select 出来记录得序号,请问有什么SQL可以一把实现理想得结果是
A B C
2000 1 1
2002 1 300(假设排序号300)
2000 2 2
A B C
2000 1
2000 2
2000 3
......
2001 1
2001 2
.....
我要让C得值是select * from tb1 order by a,b之后得序号
select TB.A,TB.B,TC.C from TB,(Select A,B,IDENTITY(int,1,1) as C) TC where TB.A=TC.A and TB.B=TC.B order by TB.A,TB.B
--测试环境
DECLARE @T TABLE(F1 INT,F2 INT,F3 INT)
INSERT @T (F1,F2)
SELECT 2000,1 UNION ALL
SELECT 2000,2 UNION ALL
SELECT 2000,3 UNION ALL
SELECT 2001,1 UNION ALL
SELECT 2001,2 SELECT * FROM @T
--更新F3列
UPDATE A
SET
F3=(SELECT F2 FROM @T WHERE F1=A.F1 AND F2=A.F2)
FROM @T A
--结果
SELECT * FROM @T