Re: How do you select from a table until a condition is met?
От | Nicholas Allen |
---|---|
Тема | Re: How do you select from a table until a condition is met? |
Дата | |
Msg-id | 200302122055.21790.nallen@freenet.co.uk обсуждение исходный текст |
Ответ на | Re: How do you select from a table until a condition is met? (Bruno Wolff III <bruno@wolff.to>) |
Ответы |
Re: How do you select from a table until a condition is met?
|
Список | pgsql-sql |
I thought of this but the problem is that there may be multiple rows with the same value for the column I am sorting on. Eg if sorting on a surname then there may be 100s of people with the same surname so generating a where clause that selects up to the exact person previously selected is very difficult. eg where surname <= 'Jones' could return hundreds of records and probably some records for people with the same surname but which appear after the selected record. I had another idea though. Do you know if it is possible to write a function for postgresql thatwill return true until a condition is met and then for every row after that return false? This way I could write a function that could select up to a particular row using the where clause and calling the function from the where claus. I'm sure there must be a way of doing this as it is such an obvious thing to need to do... Thanks for the help! On Wednesday 12 Feb 2003 8:35 pm, Bruno Wolff III wrote: > On Wed, Feb 12, 2003 at 20:10:15 +0100, > > Nicholas Allen <nallen@freenet.co.uk> wrote: > > Thanks, but I don't think thats what I want. Basically I need to get the > > row offset of a record (ie row) in a result set returned from the > > database. I know all the details of the row in question but when the > > search order changes I need to know the new index the row will have. > > > > In other words, I was hoping I would be able to select upto a particular > > row (not knowing its offset but knowing everything else about it) in a > > select query. > > > > Ideally I could do something like SELECT count(*) UNTIL col1=value1 && > > col2=val2 etc.... > > Since you are ordering the data you can use where clauses with < (and/or >) > operators to stop counting at the desired row. For this to work the > ordering needs to be well defined. You can tack on the primary key to your > list of columns to order by to make the ordering well defined if it isn't > already.
В списке pgsql-sql по дате отправления: