OnderwerpenSpiekbriefjeLessen
Lurndo › Onderwerpen › Tekstfuncties

SQL leren: Tekstfuncties

Tekst bewerken

"Waarom staan er twee soorten romans in mijn overzicht?" Sanne fronst. Iemand typte ooit `Roman` met een hoofdletter, een ander `roman` zonder. Tijd om tekst te leren temmen.

Functies op tekst

Een functie neemt een waarde en geeft er een nieuwe voor terug, per rij. UPPER zet tekst in hoofdletters, LOWER in kleine letters, en LENGTH telt de tekens.

De tabel zelf verandert niet: alleen het resultaat.

SELECT titel, UPPER(titel) AS luid, LENGTH(titel) AS tekens FROM boeken
Resultaat
titelluidtekens
De stille rivierDE STILLE RIVIER16
Nachtwacht in BruggeNACHTWACHT IN BRUGGE20
Het laatste lichtHET LAATSTE LICHT17
Draken van het NoordenDRAKEN VAN HET NOORDEN22
Koken met restjesKOKEN MET RESTJES17
The Glass HarbourTHE GLASS HARBOUR17
Zomer in ZeelandZOMER IN ZEELAND16
De code van MercatorDE CODE VAN MERCATOR20

Rommelige data rechtzetten

Voor SQLite zijn roman en Roman twee verschillende waarden. Groeperen op genre geeft daarom twee groepjes romans (onderaan zie je het probleem).

Groepeer je op LOWER(genre), dan vallen ze samen. Je mag een functie gewoon in GROUP BY gebruiken.

SELECT LOWER(genre) AS genre, COUNT(*) AS aantal FROM boeken GROUP BY LOWER(genre)
Resultaat
genreaantal
fantasy3
non-fictie3
roman7
strip2
thriller5
SELECT genre, COUNT(*) AS aantal FROM boeken GROUP BY genre
Zonder LOWER
genreaantal
Roman2
THRILLER1
fantasy3
non-fictie3
roman5
strip2
thriller4

Plakken, knippen en poetsen

|| plakt tekst aan elkaar. SUBSTR(tekst, start, lengte) knipt er een stuk uit, te tellen vanaf 1. REPLACE(tekst, oud, nieuw) vervangt, en TRIM haalt spaties weg aan het begin en het einde.

Getallen mag je gewoon meeplakken: SQLite maakt er tekst van.

SELECT auteur || ': ' || titel AS etiket, SUBSTR(isbn, 1, 3) AS prefix, REPLACE(isbn, '-', '') AS zonder_streepjes FROM boeken
Resultaat
etiketprefixzonder_streepjes
Lies Verbeke: De stille rivier9789789044110013
Tom Janssens: Nachtwacht in Brugge9789789044110020
Ann De Wilde: Het laatste licht9789789044110037
Kris Maes: Draken van het Noorden9789789044110044
Sara Peeters: Koken met restjes9789789044110051
Emily Hart: The Glass Harbour9789781840010068
Lies Verbeke: Zomer in Zeeland9789789044110075
Tom Janssens: De code van Mercator9789789044110082

Probeer het zelf

Maak etiketten voor de rekken. Toon per boek de titel met het jaar erachter tussen haakjes, bijvoorbeeld Het eiland (2011).

Klaar voor meer?

De volledige les heeft 6 oefeningen, van makkelijk naar uitdagend, met hints, punten en een reeks die je kan opbouwen.

Begin aan de les
← VorigeEen tabel met zichzelf koppelenVolgende →Rekenen met datums
SQL-onderwerpenSpiekbriefjeExcelRanglijstAccountPrivacyEnglish