Raj Mathur wrote:
On Saturday 05 Sep 2009, bilal ghayyad wrote:
I have an sql script function that take one text parameter "funct
(text)", what I need to do is the following:

If the parameter name is string and its value was for example "abcd"
then I need to do a query based on ab and then based on the abc, how?

Example:

SELECT * from voipdb where prefix like string

But I need the string to be ab and then to be abc? How I can assign
the string to the first character and then to the first and second?
In other words, how can I can take part of the string to do query on
it?

From your example the following brute-force method should work (not tested):

select * from voipdb where prefix like substring(string from 1 for 2) || '%' or prefix like substring(string from 1 for 3) || '%';

However, I don't understand why you'd want to search for both 'ab' and 'abc' in the same query, since the first condition is a superset of the second one.



Given that tablename is "voipdb"; I wonder if OP really wants to write a query that finds the row where argument to function matches the most number of leading characters in "prefix".

If voipdb table contains: ab, abc, def, defg; then calling function with "abc" or "abcd" returns "abc" and calling function with "defh" returns "def".

If this is the real problem to be solved; then brute force is one solution; but I'm left wondering if a single query might return desired result (a single row).

--
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql

Reply via email to