On Tue, 12 Oct 2021 at 20:34, Adrian Klaver <adrian.klaver@xxxxxxxxxxx> wrote:
On 10/12/21 09:31, Shaozhong SHI wrote:
> I tried initcap and found a major problem with it.
What Postgres version?
In version 12 and 14 I get:
>
> Initcap of notemachine is NoteMachine.
select initcap('notemachine');
initcap
-------------
Notemachine
>
> Initcap of Sainsbury's Bank is Sainsbury'S bank.
select initcap('Sainsbury''s Bank');
initcap
------------------
Sainsbury'S Bank
Which follows the definition here:
https://www.postgresql.org/docs/14/functions-string.html
initcap ( text ) → text
Converts the first letter of each word to upper case and the rest to
lower case. Words are sequences of alphanumeric characters separated by
non-alphanumeric characters.
Hi, Adrian Klaver,
It looks like that you replicated the error.
There must be a way to do the following.
a column contains a list of words. Only the first letter of each word should be capitalised. INITCAP can not do that. How to create a function just to capitalised each word (substring) in a list of words/strings. This will be very useful and create great impact.
Regards,
David