Tekst manipulatie in SQL met Stuff()
In SQL heb je een aantal ingebouwde functies die erg handig kunnen zijn. Je kunt hier bijvoorbeeld denken aan Count(), welke het totaal aantal rijen teruggeeft van een query resultaat. Maar er zijn ook een aantal om tekst mee te manipuleren. In deze blog wil ik een specifieke functie uitlichten, namelijk Stuff().
Stuff
Met deze functie kun je een zin toevoegen binnen een andere zin. Het verwijderd een aantal opgegeven letters uit een zin en zal dan de tweede zin toevoegen bij het aangegeven startpunt. De syntax van de functie ziet er als volgt uit:
Hier is de eerste parameter de zin waarbinnen een zin toegevoegd gaat worden, daarna volgt de start positie van de toe te voegen zin en als laatste volgt het aantal letters dat verwijderd moet worden vanaf de positie.
Let wel, als de startpositie buiten de zin ligt, dus deze is groter dan het aantal letters in de zin, dan zal het resultaat van de query NULL zijn. Dit geldt ook als de startpositie een negatieve waarde is, bijvoorbeeld -1. Als laatste, als de lengte van de te verwijderen letters langer is dan de zin dan zal de gehele zin verwijderd worden behalve de eerste letter. Daarna zal de tweede zin ingevoegd worden.
Hieronder een voorbeeld:
Dit levert het volgeden resultaat op:
Je ziet dat de tweede zin is toegevoegd op positie 7. Daarnaast zie je dat er een komma is verwijderd, want er anders kwam er na de âzin in de zinâ nogmaals een komma.
Deze functie kan handig zijn als je bijvoorbeeld meerdere kolommen wilt samenvoegen naar 1 kolom. Een voorbeeld:
Stel, we hebben een tijdelijke tabel @temp met daarin enkele waarden: