Probleem:
U wilt een reeks tekens aan het begin van een tekenreeks verwijderen.
Voorbeeld:
Onze database heeft een tabel met de naam product met gegevens in drie kolommen:id , naam , en model .
| id | naam | model |
|---|---|---|
| 1 | kijken | Lx0A123 |
| 2 | smartwatch | Lx0W34 |
| 3 | klokfoto | Lx0G100 |
Laten we de modelcode van elk nieuw product inkorten en de onnodige tekens (Lx0) aan het begin verwijderen.
Oplossing 1:
We gebruiken de TRIM() functie. Dit is de vraag die je zou schrijven:
SELECT name, TRIM(LEADING 'Lx0' FROM model ) AS new_model_code FROM product;
Dit is het resultaat:
| naam | nieuwe_model_code |
|---|---|
| kijk | A123 |
| smartwatch | W34 |
| klok foto | G100 |
Discussie:
Gebruik de TRIM() functie met de LEADING trefwoord om tekens aan het begin van een tekenreeks te verwijderen. Met TRIM() kunt u specifieke tekens of spatie(s) aan het begin, einde of beide uiteinden van een tekenreeks verwijderen. Deze functie heeft de volgende argumenten:
- Een optioneel trefwoord dat de uiteinden specificeert die moeten worden bijgesneden. Standaard is dit
BOTH, maar u kuntLEADINGdefiniëren (verwijderen van begin) ofTRAILING(verwijder van einde). - Een tekenreeks die het teken/de tekens/spatie(s) definieert die u uit de tekenreeks wilt verwijderen (in ons voorbeeld de reeks 'Lx0').
- De
FROMzoekwoord. - De tekenreeks/kolomnaam die moet worden bijgesneden (in ons voorbeeld het model kolom).
In ons voorbeeld ziet dit er als volgt uit:
TRIM(LEADING 'Lx0' FROM model)