Re: Simple method to format a string

Поиск
Список
Период
Сортировка
От Wes James
Тема Re: Simple method to format a string
Дата
Msg-id CAFjCMHuPLR1aEHr8agWm1ihT+8XNRZcFeKkPY1oQ_GABPOMfGg@mail.gmail.com
обсуждение исходный текст
Ответ на Simple method to format a string  (Emi Lu <emilu@encs.concordia.ca>)
Ответы Re: Simple method to format a string  ("ktm@rice.edu" <ktm@rice.edu>)
Список pgsql-sql

On Wed, Jun 20, 2012 at 8:42 AM, Emi Lu <emilu@encs.concordia.ca> wrote:
Good morning,

Is there a simply method in psql to format a string?

For example, adding a space to every three consecutive letters:

abcdefgh -> *** *** ***

Thanks a lot!
Emi


I looked at "format" here:


but didn't see a way.

This function might do what you need:


CREATE FUNCTION spaced3 (text) RETURNS text AS $$
DECLARE
   -- Declare aliases for function arguments.
  arg_string ALIAS FOR $1;
  
  -- Declare variables
  row record;
  res text;

BEGIN
  res := '';
  FOR row IN SELECT regexp_matches(arg_string, '.{1,3}', 'g') as chunk LOOP
    res := res || ' ' || btrim(row.chunk::text, '{}');
  END LOOP;
  RETURN res;
END;
$$ LANGUAGE 'plpgsql';


# SELECT spaced3('abcdefgh');

   spaced3   
-------------
  abc def gh
(1 row)

# SELECT spaced3('0123456789');
    spaced3     
----------------
  012 345 678 9
(1 row)

to remove the function run this:

# drop function spaced3(text); 

-wes

В списке pgsql-sql по дате отправления:

Предыдущее
От: Andreas
Дата:
Сообщение: Is there a similarity-function that minds national charsets?
Следующее
От: "ktm@rice.edu"
Дата:
Сообщение: Re: Simple method to format a string