I PostgreSQL kan vi bruge initcap()
funktion til at formatere en tekststreng for at bruge begyndelsesbogstaver. Det vil sige, at det konverterer det første bogstav i hvert ord til store bogstaver og resten til små bogstaver.
Syntaks
Syntaksen ser sådan ud:
initcap ( text )
Hvor text
er den tekst, der skal konverteres til initialer.
Eksempel
SELECT initcap('Bay of pigs');
Resultat:
Bay Of Pigs
Her er et eksempel, der starter med al tekst med store bogstaver:
SELECT initcap('PRACHUAP KHIRI KHAN');
Resultat:
Prachuap Khiri Khan
Ord er sekvenser af alfanumeriske tegn adskilt af ikke-alfanumeriske tegn:
SELECT
initcap('shrink-wrap') AS "1",
initcap('shrink.wrap') AS "2",
initcap('shrink,wrap') AS "3";
Resultat:
+-------------+-------------+-------------+ | 1 | 2 | 3 | +-------------+-------------+-------------+ | Shrink-Wrap | Shrink.Wrap | Shrink,Wrap | +-------------+-------------+-------------+
Tal er alfanumeriske, så brug af store bogstaver i efterfølgende ord afhænger af, om der er et andet tegn, der ikke er alfanumerisk:
SELECT
initcap('shrink1wrap') AS "1",
initcap('shrink1 wrap') AS "2";
Resultat:
+-------------+--------------+ | 1 | 2 | +-------------+--------------+ | Shrink1wrap | Shrink1 Wrap | +-------------+--------------+
Databaseeksempel
Her er et eksempel på at konvertere resultaterne af en databaseforespørgsel til indledende caps:
SELECT
title,
initcap(title)
FROM film
LIMIT 10;
Resultat:
+------------------+------------------+ | 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 | +------------------+------------------+
Her brugte jeg pagila
prøvedatabase. Denne database gemmer filmnavne med store bogstaver i title
kolonne. I dette tilfælde brugte jeg initcap()
funktion til at konvertere title
kolonne for at bruge begyndelsesbogstaver.