Обсуждение: How do I select nth row from a table
hi ,
I have a table (USR_GROUP_TBL) with  following attributes
  grp_name     char(30)  usr-name     char(15)
In my C program ( with embedded SQL using ecpg)
I need to select  the 'n'th user from the group.
Where n can any value from 1 to Max number of
users in the group.
The following query works well in non-embedded  sql
       select  user_name       from mail_file_dtl       where grp_name = 'grp_1'       order by user_name  limit 1
offset5;
 
Will return the 5th user in the group 'grp_1'.
How can I incorporate this query in  an  embedded sql ??
I tried  the following but ecpg returned error on the last
line.
exec sql       select  mfl_size into :mfl_size       from mail_file_dtl       where mfl_recipient = :mfl_recipient
order by mfl_file_name  limit 1 offset = :nNumber ;
 
Can a variable name be used in the offset option to pass
the value ?
I  encountered a very similar problem when I  tried to use
a cursor  with 'move forward' option.
Thanks
ganesh
			
		ganesanm <ganesanm@technauts.com> writes:
> How can I incorporate this query in  an  embedded sql ??
> I tried  the following but ecpg returned error on the last
> line.
>  exec sql
>         select  mfl_size into :mfl_size
>         from mail_file_dtl
>         where mfl_recipient = :mfl_recipient
>         order by mfl_file_name  limit 1 offset = :nNumber ;
> Can a variable name be used in the offset option to pass
> the value ?
It looks like not, at the moment.  I think the grammar for ecpg
needs to accept a "cvariable" in places where the underlying
backend grammar only accepts an ICONST.  It's probably too late
to fix this for 7.0, but it should be a todo item for 7.1...
        regards, tom lane
			
		On Wed, Apr 19, 2000 at 05:18:01PM -0400, ganesanm wrote: > The following query works well in non-embedded sql > > select user_name > from mail_file_dtl > where grp_name = 'grp_1' > order by user_name limit 1 offset 5; It should work as well under ECPG. > I tried the following but ecpg returned error on the last > line. Sure. First of all there must not be an equal sign. And second ECPG does not accept a variable here. > Can a variable name be used in the offset option to pass > the value ? Right now: No. But surely this should be done. Michael -- Michael Meskes | Go SF 49ers! Th.-Heuss-Str. 61, D-41812 Erkelenz | Go Rhein Fire! Tel.: (+49) 2431/72651 | Use Debian GNU/Linux! Email: Michael@Fam-Meskes.De | Use PostgreSQL!
On Wed, Apr 19, 2000 at 11:14:13PM -0400, Tom Lane wrote: > It looks like not, at the moment. I think the grammar for ecpg Right. > needs to accept a "cvariable" in places where the underlying > backend grammar only accepts an ICONST. It's probably too late > to fix this for 7.0, but it should be a todo item for 7.1... I agree. Michael -- Michael Meskes | Go SF 49ers! Th.-Heuss-Str. 61, D-41812 Erkelenz | Go Rhein Fire! Tel.: (+49) 2431/72651 | Use Debian GNU/Linux! Email: Michael@Fam-Meskes.De | Use PostgreSQL!