PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment puis-je changer de casse pour chaque lettre d'une chaîne avec SQL ?

Si vous ne traitez que les caractères A-Z, vous pouvez utiliser le translate fonction dans postgres pour convertir les cas.

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

Vous pouvez le simplifier légèrement en utilisant les fonctions supérieur/inférieur.

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