0

我在 sql 中有一个表有两个字段'JOB_NUMBER''SRno',两者之间的关系是这样的,每个作业号都有许多从 1、2、3 开始的 SRNO,依此类推,每个新的作业号都必须有一个 SR没有起始表格1,

所以我理想的桌子应该是这样的:

JOB_NUMBER    SRno
   1            1
   1            2 
   1            3
   2            1
   2            2
   3            1 and so on.......

我想要做的是在 sql 本身中实现这个索引,我可以这样做,是这样吗?

4

3 回答 3

0

您的意思是自动编号(索引在 DBMS 中有所不同)。可以使用触发器来实现。但这是特定于 DBMS 的问题。检查您的数据库是否支持触发器。

于 2012-07-23T07:51:17.240 回答
0

你在找这样的东西吗..

select JOB_NUMBER,ROW_NUMBER() over(partition by JOB_NUMBER order by JOB_NUMBER) 
as SRno from table_jobs   
于 2012-07-23T08:11:23.440 回答
0

如果表上有另一列类似于时间戳(例如提交时间),那么您可以执行以下操作:

select job_number, 
   row_number() over (partition by job_number order by time_submitted asc) as SRno
from tbl

你可以把它变成一个视图,你很高兴。请记住,这对数据修改很敏感(即,如果有人在另外两行之间插入一行,则插入后的行将被“重新编号”)。还要记住,这不会将 SRno 存储在表上;它必须动态计算。

于 2012-07-23T13:35:14.093 回答