In PostgreSQL, possiamo usare initcap()
funzione per formattare una stringa di testo per utilizzare le iniziali maiuscole. Cioè, converte la prima lettera di ogni parola in maiuscolo e il resto in minuscolo.
Sintassi
La sintassi è questa:
initcap ( text )
Dove text
è il testo da convertire in maiuscolo iniziale.
Esempio
SELECT initcap('Bay of pigs');
Risultato:
Bay Of Pigs
Ecco un esempio che inizia con tutto il testo maiuscolo:
SELECT initcap('PRACHUAP KHIRI KHAN');
Risultato:
Prachuap Khiri Khan
Le parole sono sequenze di caratteri alfanumerici separati da caratteri non alfanumerici:
SELECT
initcap('shrink-wrap') AS "1",
initcap('shrink.wrap') AS "2",
initcap('shrink,wrap') AS "3";
Risultato:
+-------------+-------------+-------------+ | 1 | 2 | 3 | +-------------+-------------+-------------+ | Shrink-Wrap | Shrink.Wrap | Shrink,Wrap | +-------------+-------------+-------------+
I numeri sono alfanumerici, quindi la maiuscola delle parole successive dipenderà dalla presenza o meno di un altro carattere non alfanumerico:
SELECT
initcap('shrink1wrap') AS "1",
initcap('shrink1 wrap') AS "2";
Risultato:
+-------------+--------------+ | 1 | 2 | +-------------+--------------+ | Shrink1wrap | Shrink1 Wrap | +-------------+--------------+
Esempio di database
Ecco un esempio di conversione dei risultati di una query di database in maiuscoli iniziali:
SELECT
title,
initcap(title)
FROM film
LIMIT 10;
Risultato:
+------------------+------------------+ | 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 | +------------------+------------------+
Qui ho usato il pagila
database di esempio. Questo database memorizza i nomi dei film in caratteri maiuscoli nel title
colonna. In questo caso ho usato initcap()
funzione per convertire il title
colonna per utilizzare le iniziali maiuscole.