Richard,
Please correct me if I am wrong.
You want to do something like:
select $1 from captives where firstname ~ '^(R[^ \t,]*d)$';
And get as result:
lastname
Richard
Richard
Richard
Ricard
Richard
Rolland
Richard
In this case, the above query is same as:
select firstname from captives where firstname ~ '^R[^ \t,]*d$';
If the firstname field contains entries like "Richard, Elvis" and "Richard Amadeus,"
then you want something like:
select $1 from captives where firstname ~ '^(R[^ \t,]*d)[ \t,]';
which would return the first name in the field but not subsequent
names.
I am afraid there is no built in solution to get around these scenarios.
You could do:
select substring(firstname from 1 for (position(' ' in firstname)-1)) from captives where firstname ~ '^R[^ ]*d ' union
selectfirstname from captives where firstname ~ '^R[^ ]*d$';
This would get you what you wanted, for this one scenario.
I know it's not what you hoped, but you might be able to
make do with this.
Troy
>
> I am just getting started with pgsql and have read available docs I can
> find.
>
> I know I can match a row in a where clause using a regular expression.
>
> How can I use what was regexp matched (e.g. perl $1,$2, etc...) as a column
> assignment ?
>
> I'm looking for something like this?
> select ...
> ...
> $1 of firstname, /^R.*d/ as name_starts_with_r_and_ends_with_d
> ...
>
> TIA
>
> Richard DeVenezia
>
>