PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como posso alternar entre maiúsculas e minúsculas para cada letra em uma string com SQL?


Se você estiver lidando apenas com os caracteres de A a Z, poderá usar a traduzir função no postgres para converter casos.
select TRANSLATE(
    'dxItw9a4', -- original text
    'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', -characters to change
    'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' -- replacement characters.
)

Você pode simplificar um pouco usando as funções superior/inferior.
select TRANSLATE(
    'dxItw9a4',  -- original text
    upper('dxItw9a4')||lower('dxItw9a4'), --characters to search for
    lower('dxItw9a4')||upper('dxItw9a4') -- replacement characters
);