Dynamic Offset Determination
От | David Blankley |
---|---|
Тема | Dynamic Offset Determination |
Дата | |
Msg-id | 20050713151014.P23754-100000@hallsofworlds.com обсуждение исходный текст |
Список | pgsql-sql |
Problem Statement: I want to return n rows from a table. These n rows are relative to an offset. The part I can't figure out: The offset needs to be determined from values in the rows. Example: Given a table foo: CriteriaCol integer OrderedCol integer I can figure out the number of rows SELECT COUNT(CriteriaCol) FROM foo; How do I determine the offset? SELECT {rownum?} FROM foo WHERE CriteriaCol = SomeValidValue; With the rownum I can then determine the rows I want. SELECT * FROM foo ORDER BY OrderedCol LIMIT 21 OFFSET (rownum-10); Don't worry about boundary conditions, functions, etc, I can sort that out once I know how to get the offset. -------------------------- Searching the forums, the one potential hack I've found is: Quote from: http://archives.postgresql.org/pgsql-sql/2003-04/msg00287.php create temp sequence foo;select nextval('foo'), * from(select ... whatever ... order by something) ss; drop sequence foo; Presumably I would get my ordinal value from the sequence before dropping it. This seems like it would be a potentially slow process. Also, this solution dates to 2003, so I thought it worth asking in case a better solution has come along. Thanks for suggestions/solutions Dave
В списке pgsql-sql по дате отправления: