Обсуждение: String function to Find how many times str2 is in str1?
Good morning, Is there a string function in PSQL to count how many times one str is in another string? For example, Str1 = "test test caa dtest testing EndofString"; Str2 = " "; select funcName(Str1, Str2); return 5 Because Str1 has 5 Str2. Thanks ! Ly
On Fri, Feb 15, 2008 at 11:09 AM, Emi Lu <emilu@encs.concordia.ca> wrote:
> Str1 = "test test caa dtest testing EndofString";
> Str2 = " ";
>
> select funcName(Str1, Str2);
>
> return 5
CREATE OR REPLACE FUNCTION FOOBAR(TEXT,TEXT)
RETURNS INT AS $$ SELECT(LENGTH($1) - LENGTH(REPLACE($1, $2, ''))) / LENGTH($2) ;
$$ LANGUAGE SQL IMMUTABLE;
SELECT FOOBAR('test test caa dtest testing EndofString', ' ');
foobar
-------- 5
(1 row)
Good luck.
Hello
what about
CREATE OR REPLACE FUNCTION Foobar(text, text)
RETURNS integer AS $$
SELECT array_upper(string_to_array($1,$2),1) - 1;
$$ LANGUAGE SQL IMMUTABLE;
On 15/02/2008, Rodrigo E. De León Plicet <rdeleonp@gmail.com> wrote:
> On Fri, Feb 15, 2008 at 11:09 AM, Emi Lu <emilu@encs.concordia.ca> wrote:
> > Str1 = "test test caa dtest testing EndofString";
> > Str2 = " ";
> >
> > select funcName(Str1, Str2);
> >
> > return 5
>
>
> CREATE OR REPLACE FUNCTION
> FOOBAR(TEXT,TEXT)
> RETURNS INT AS $$
> SELECT(LENGTH($1) - LENGTH(REPLACE($1, $2, ''))) / LENGTH($2) ;
> $$ LANGUAGE SQL IMMUTABLE;
>
> SELECT FOOBAR('test test caa dtest testing EndofString', ' ');
>
> foobar
> --------
> 5
> (1 row)
>
> Good luck.
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: Don't 'kill -9' the postmaster
>
Pavel Stehule wrote:
> Hello
>
> what about
>
> CREATE OR REPLACE FUNCTION Foobar(text, text)
> RETURNS integer AS $$
> SELECT array_upper(string_to_array($1,$2),1) - 1;
> $$ LANGUAGE SQL IMMUTABLE;
>
> On 15/02/2008, Rodrigo E. De León Plicet <rdeleonp@gmail.com> wrote:
>> On Fri, Feb 15, 2008 at 11:09 AM, Emi Lu <emilu@encs.concordia.ca> wrote:
>> > Str1 = "test test caa dtest testing EndofString";
>> > Str2 = " ";
>> >
>> > select funcName(Str1, Str2);
>> >
>> > return 5
>>
>>
>> CREATE OR REPLACE FUNCTION
>> FOOBAR(TEXT,TEXT)
>> RETURNS INT AS $$
>> SELECT(LENGTH($1) - LENGTH(REPLACE($1, $2, ''))) / LENGTH($2) ;
>> $$ LANGUAGE SQL IMMUTABLE;
>>
>> SELECT FOOBAR('test test caa dtest testing EndofString', ' ');
>>
>> foobar
>> --------
>> 5
>> (1 row)
>>
If there is not a system func for this, I will do this way.
Thank you for all inputs.
Ly