sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo puedo cambiar el caso de cada letra en una cadena con SQL?

Si solo está tratando con los caracteres A-Z, puede usar translate función en postgres para convertir casos.

select TRANSLATE(
    'dxItw9a4', -- original text
    'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', -characters to change
    'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' -- replacement characters.
)

Puede simplificarlo un poco usando las funciones superior/inferior.

select TRANSLATE(
    'dxItw9a4',  -- original text
    upper('dxItw9a4')||lower('dxItw9a4'), --characters to search for
    lower('dxItw9a4')||upper('dxItw9a4') -- replacement characters
);