postgresql で rownum をシミュレートする方法はありますか?
183788 次
8 に答える
97
Postgresql > 8.4
SELECT
row_number() OVER (ORDER BY col1) AS i,
e.col1,
e.col2,
...
FROM ...
于 2010-10-18T13:41:12.033 に答える
32
Postgresql には制限があります。
オラクルのコード:
select *
from
tbl
where rownum <= 1000;
Postgresql のコードでも同じです:
select *
from
tbl
limit 1000
于 2015-09-25T12:28:05.837 に答える
29
Postgres 9.1 で、Oracle ROWNUM に近いソリューションをテストしました。
select row_number() over() as id, t.*
from information_schema.tables t;
于 2012-10-03T09:50:47.870 に答える
9
数値を元に戻したい場合は、これを試してください。
create temp sequence temp_seq;
SELECT inline_v1.ROWNUM,inline_v1.c1
FROM
(
select nextval('temp_seq') as ROWNUM, c1
from sometable
)inline_v1;
order by を inline_v1 SQL に追加して、ROWNUM がデータに対して連続した意味を持つようにすることができます。
select nextval('temp_seq') as ROWNUM, c1
from sometable
ORDER BY c1 desc;
最速ではないかもしれませんが、本当に必要な場合はオプションです。
于 2010-10-18T15:06:54.753 に答える
2
Postgresql には、Oracle の ROWNUM に相当するものはありません。多くの場合、クエリで LIMIT と OFFSET を使用して同じ結果を得ることができます。
于 2010-10-18T13:41:05.180 に答える