日期:2014-05-17  浏览次数:20413 次

高手进-挠头问题,请教各位大神(自动递增字段)
有如下结构的表,主键是ID和CODE
ID CODE NAME
1 A A1
2 A NO
3 A A3
4 A A4 
1 B B1
2 B NO
3 B B3
检索出NAME不等于“NO”的数据,并根据CODE的值重新编写ID的值(递增+1).
也就是说结果集中,当CODE的值变化时,ID的值重新从1开始递增。
同过SQL文将结果集整理成
ID CODE NAME
1 A A1
2 A A3
3 A A4 
1 B B1
2 B B3
小弟人穷没有大钱,请各位大神帮忙。

------解决方案--------------------
SQL code

select row_number()over(partition by CODE order by CODE ,Name) as ID,
CODE , Name from 表 
where name <> 'NO'