我想写一个存储过程,实现上图效果,就是按class分类,然后设置value的值,弄个了半天,弄不出来啊 大家帮帮忙啊 谢谢
------最佳解决方案--------------------
--CREATE TABLE huang (id INT ,class INT,VALUE int)
--INSERT INTO Huang
--SELECT 7,1,NULL
--UNION ALL
--SELECT 8,1,NULL
--UNION ALL
--SELECT 3,1,NULL
--UNION ALL
--SELECT 4,2,NULL
--UNION ALL
--SELECT 5,2,NULL
--UNION ALL
--SELECT 6,2,NULL
SELECT id,class,RANK()OVER(PARTITION BY class ORDER BY id)VALUE
FROM Huang
/*
id class VALUE
----------- ----------- --------------------
1 1 1
2 1 2
3 1 3
7 1 4
8 1 5
4 2 1
5 2 2
6 2 3
(8 行受影响)
*/
------其他解决方案--------------------
造数据的那个你就不用看了,这个查询出来你再update过去
------其他解决方案--------------------
是可以查询,不过我是要修改那个value的值 修改成那样
------其他解决方案--------------------
;with cte as (SELECT id,class,RANK()OVER(PARTITION BY class ORDER BY id)VALUE
FROM Huang)
update tb
set a.value=b.value
from tb a inner join cte b on a.id=b.id
------其他解决方案--------------------
这个还是不行啊 报错 无法绑定由多个部分组成的标识符 "a.value"。