sql >> Database >  >> RDS >> Database

Voorloop- en/of volgspaties van een tekenreeks verwijderen in T-SQL

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'

  1. Eenvoudige parametrering en triviale plannen - deel 2

  2. Configuratietabellen gebruiken om de werkelijke workflow te definiëren

  3. Een database-e-mailaccount toevoegen aan een profiel (T-SQL)

  4. Hoe test ik in WiX op het bestaan ​​van een registersleutel (geen waarde) voor Oracle ODP.Net?