dポイントプレゼントキャンペーン実施中!

Oracleのrow_numberのような関数はないのでしょうか?

Order By句を指定してSELECTした結果の行番号を求めたいのですが、
なにか良い方法はないのでしょうか。

例えば次の表なテーブルがあった場合、
Code1 Code2 Code3
01  02  02
01  02  01
01  01  02

ORDER BY Code1,Code2,Code3
で行った場合の結果が
No Code1 Code2 Code3
1  01  01  02
2  01  02  01
3  01  02  02

Noを求めたいのですが。

A 回答 (2件)

次のSQLを試してみてください。



select
(select count(*)+1 from t1 as x
where x.c1<y.c1
or x.c1=y.c1 and x.c2<y.c2
or x.c1=y.c1 and x.c2=y.c2 and x.c3<y.c3) as no,
c1,c2,c3
from t1 as y
order by no;
    • good
    • 4
この回答へのお礼

ありがとうございました。
出来ました。
count(*)+1だと、NOが2から始まってしまったので、
count(*)にしてみたら、出来ました。

お礼日時:2007/08/10 09:12

> Oracleのrow_numberのような関数はないのでしょうか?



私の知る限りでは、ないです。

> Order By句を指定してSELECTした結果の行番号を求めたいのです

Code1、Code2、Code3の3列で、ユニークになりますか?
あるいは、これ以外に、行をユニークに識別できるキーがありますか?

この回答への補足

やはりないのですか・・・。
Code1、Code2、Code3の3列で、ユニークになります。
何か方法がありますか?

補足日時:2007/08/09 09:02
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A