0

私は2つのフィールド「JOB_NUMBER」「SRno」を持つSQLのテーブルを持っています.2つの間の関係は、各ジョブ番号が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

このようなものをお探しですか..

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

それをビューにすることができ、準備完了です。これはデータの変更に影響されることに注意してください (つまり、誰かが他の 2 つの行の間に行を挿入すると、挿入された行の後の行が「再番号付け」されます)。また、これは SRno をテーブルに保存しないことに注意してください。動的に計算する必要があります。

于 2012-07-23T13:35:14.093 に答える
0

あなたは自動番号付けを意味します(インデックス付けはDBMSでは別のものです)。トリガーを使用して実現できます。しかし、それは DBMS 固有の問題です。データベースがトリガーをサポートしているかどうかを確認してください。

于 2012-07-23T07:51:17.240 に答える