20130214

出力するデータにナンバリングするSQL関数

使えそうなので、リマインド。

[確認:PostgreSQL 9.1、SQL Server 2005]
※MySQL、Oracleは使えるっぽいが、未確認。

#---
ROW_NUMBER() OVER(ORDER BY item1,item2...)
#---

ex)
SELECT ROW_NUMBER() OVER(ORDER BY item1) as rows,item1, item2 FROM table WHERE item1 <= '5';

rows Item1 Item2
#---
1 1 B
2 2 D
3 3 F
4 4 H
5 5 J

ナンバリングした番号に条件を付けたいとき。

select * from
(SELECT ROW_NUMBER() OVER(ORDER BY item1) as rows , item2 FROM table) tbl
where rows between '200' and '299';


0 件のコメント: