No PostgreSQL, podemos usar o
initcap()
função para formatar uma string de texto para usar maiúsculas iniciais. Ou seja, ele converte a primeira letra de cada palavra para maiúscula e o restante para minúscula. Sintaxe
A sintaxe fica assim:
initcap ( text )
Onde
text
é o texto a ser convertido em maiúsculas iniciais. Exemplo
SELECT initcap('Bay of pigs');
Resultado:
Bay Of Pigs
Aqui está um exemplo que começa com todo o texto em maiúsculas:
SELECT initcap('PRACHUAP KHIRI KHAN');
Resultado:
Prachuap Khiri Khan
Palavras são sequências de caracteres alfanuméricos separados por caracteres não alfanuméricos:
SELECT
initcap('shrink-wrap') AS "1",
initcap('shrink.wrap') AS "2",
initcap('shrink,wrap') AS "3";
Resultado:
+-------------+-------------+-------------+ | 1 | 2 | 3 | +-------------+-------------+-------------+ | Shrink-Wrap | Shrink.Wrap | Shrink,Wrap | +-------------+-------------+-------------+
Os números são alfanuméricos, portanto, a capitalização das palavras subsequentes dependerá da existência ou não de outro caractere não alfanumérico:
SELECT
initcap('shrink1wrap') AS "1",
initcap('shrink1 wrap') AS "2";
Resultado:
+-------------+--------------+ | 1 | 2 | +-------------+--------------+ | Shrink1wrap | Shrink1 Wrap | +-------------+--------------+
Exemplo de banco de dados
Aqui está um exemplo de conversão dos resultados de uma consulta de banco de dados em maiúsculas iniciais:
SELECT
title,
initcap(title)
FROM film
LIMIT 10;
Resultado:
+------------------+------------------+ | title | initcap | +------------------+------------------+ | ACADEMY DINOSAUR | Academy Dinosaur | | ACE GOLDFINGER | Ace Goldfinger | | ADAPTATION HOLES | Adaptation Holes | | AFFAIR PREJUDICE | Affair Prejudice | | AFRICAN EGG | African Egg | | AGENT TRUMAN | Agent Truman | | AIRPLANE SIERRA | Airplane Sierra | | AIRPORT POLLOCK | Airport Pollock | | ALABAMA DEVIL | Alabama Devil | | ALADDIN CALENDAR | Aladdin Calendar | +------------------+------------------+
Aqui eu usei a
pagila
banco de dados de exemplo. Este banco de dados armazena nomes de filmes em letras maiúsculas no title
coluna. Neste caso eu usei o initcap()
função para converter o title
coluna para usar maiúsculas iniciais.