SQL select ステートメントで行番号を取得したいのですが、Oracle の rownum を使用できないような DB 固有のクエリであってはなりません。どうすればこれを達成できるか教えてください。
私は次のようなテーブル構造を持っています pid,emplid,desc カラムとして pid と emplid の組み合わせが主キーとして使用されます。したがって、このユースケースではクエリを提案してください。
ありがとう、
シャム
SQL select ステートメントで行番号を取得したいのですが、Oracle の rownum を使用できないような DB 固有のクエリであってはなりません。どうすればこれを達成できるか教えてください。
私は次のようなテーブル構造を持っています pid,emplid,desc カラムとして pid と emplid の組み合わせが主キーとして使用されます。したがって、このユースケースではクエリを提案してください。
ありがとう、
シャム
それを行うには、テーブルに一意Id
のフィールドが必要です。行を別の行と区別するためのものです。その場合:
select t1.*,
(select count(id) from t as t2 where t2.id<=t1.id) as row_number
from t as t1 order by Id
UPD: 注文する列が 2 つある場合は、次のようになります。
select t1.*,
(select count(id) from t as t2 where t2.id1<=t1.id1 and t2.id2<=t1.id2)
as row_number
from t as t1 order by Id1,id2