How to return all capital letters in row postgresql

I’ve got a simple table, primary key and name.
The string always starts with a capital letter but could have more capital letters than just the first character. I want to return all the uppercase characters in the name.

select
    (select substring(name, '([A-Z])') name)
from cust

This returns just the first capital letter. How can I achieve this?

>Solution :

You may use a regex replacement on the name to remove any character which is not an uppercase letter:

SELECT name, REGEXP_REPLACE(name, '[^A-Z]+', '', 'g') AS caps
FROM cust;

Leave a Reply