为类和&生成rollno部分

时间:2014-11-02 03:54:15

标签: sql-server

表:在SqlServer2008中

create table studentreg(id int indentity,rollno int identity,name varchar(5),name varchar(50),class varchar(3)identity,sec varchar(3)identity)

问题:

id   rollno     name    class   sec

1   101     John        I       A
2   101     Smith       I       B
3   101     Michael     II      A
4   102     Johnson     I       A

问题:

我想在不输入的情况下自动生成rollno(我的意思是内部)。我知道这可能是身份。但我想为Class I,Sec A生成rollno(从101开始,以1为增量),再生成Class I,Sec B(再次从101开始,以1为增量)。像其他课程一样秒。您可以通过上面的图表更好地理解。

1 个答案:

答案 0 :(得分:0)

试试这个..

SELECT Row_number() OVER(partition BY class, sec ORDER BY NAME) + 100 roll_no,
       id,
       NAME,
       class,
       sec
FROM   tablename