Probleem:
U wilt spaties of specifieke tekens aan het begin en einde van een tekenreeks verwijderen.
Voorbeeld:
Onze database heeft een tabel met de naam company
met gegevens in twee kolommen:id
en name
.
id | naam |
---|---|
1 | ' Supermarkt ' |
2 | 'Groene winkel ' |
3 | 'Moderne boekwinkel' |
Laten we de naam van elk bedrijf inkorten om de onnodige ruimte aan het begin en einde te verwijderen.
Oplossing:
We gebruiken de TRIM
functie. Dit is de vraag die je zou schrijven:
SELECT TRIM(' ' FROM name) AS new_name FROM company;
Als alternatief kunt u de kortere versie gebruiken zonder de FROM
trefwoord en spatie als tekens om te verwijderen; standaard TRIM
zal dit behandelen als het verwijderen van spaties uit een tekenreeks die is opgeslagen in een bepaalde kolom of uitdrukking in het argument van de TRIM-functie.
SELECT TRIM(name) AS new_name FROM company;
Dit is het resultaat van beide zoekopdrachten:
nieuwe_naam |
---|
'Supermarkt' |
'Groene winkel' |
'Moderne boekwinkel' |
Discussie:
Gebruik de TRIM
functie als u een string in een tabel wilt inkorten. Met deze functie kunt u een specifiek teken aan het begin en einde van een tekenreeks verwijderen. Deze functie heeft de volgende argumenten:
- Het teken dat u uit de tekenreeks wilt verwijderen, is standaard een spatie..
- De
FROM
trefwoord, gevolgd door de naam van de tekenreekskolom die moet worden bijgesneden.
In ons voorbeeld ziet dat er als volgt uit:
TRIM(' ' FROM name)
T-SQL maakt het ook mogelijk om de spatie van andere tekens alleen vanaf het begin of alleen vanaf het einde van een tekenreeks te verwijderen.
In het onderstaande voorbeeld wordt de spatie aan het einde van elk bedrijf verwijderd door de functie RTRIM() te gebruiken.
SELECT RTRIM(name) AS new_name FROM company;
nieuwe_naam |
---|
'Supermarkt' |
'Groene winkel' |
'Moderne boekwinkel' |
Maar kan net zo goed worden gebruikt om de spatie aan het begin in te korten als u de LTRIM
. gebruikt functie in plaats daarvan:
SELECT LTRIM(name) AS new_name FROM company;
De query retourneert de name
kolom zonder spatie aan het einde. Merk op dat de spaties aan het begin onaangeroerd blijven.
nieuwe_naam |
---|
'Supermarkt ' |
'Groene winkel ' |
'Moderne boekwinkel' |