Tekst manipulatie in SQL met Stuff()

Geschreven door: op maandag 30 december 2019

Leestijd: 2 minuten

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:

Stuff sql voorbeeld

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:
SQL stuff voorbeeld tabel

Dit levert het volgeden resultaat op:

Sql Stuff For XML

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:

SQL stuff en for XML resultaat

De laatste query in het voorbeeld geeft het volgende resultaat:

Stel, we willen hier van deze tabel één enkele rij maken waarin de waarden die in de kolom ‘tekst’ staan, allemaal in 1 kolom worden weergegeven, komma gescheiden. Dit doen we met behulp van de volgende query:

Hier maken we gebruik van Stuff() en For XML(). For XML() is een functionaliteit binnen SQL waarbij je resultaten van een query terug kunt geven als een XML. Lees hierover meer in deze blog.

Met de Stuff() functionaliteit neemt de query een ‘,’ en plakt daarachter de waarde die in de kolom tekst staat. Onze startpositie is 1, want we beginnen met een lege zin. Nu willen we de eerste komma niet meenemen en deze verwijderen. Dit doen we ook met behulp van Stuff(), waarbij we zeggen verwijder de eerste letter uit de zin, de komma. We willen verder ook geen zin toevoegen, de laatste parameter is dus ook leeg. Deze query geeft het volgende resultaat:

Mocht je meer willen leze over Stuff, dit kan door op een van de onderstaande links te klikken:

  1. https://www.w3schools.com/sql/func_sqlserver_stuff.asp
  2. https://docs.microsoft.com/en-us/sql/t-sql/functions/stuff-transact-sql?view=sql-server-ver15

Andere blogartikelen

  • Overeenkomsten tussen Growth Hacking en UX design

    Geschreven door: op zondag 13 september 2020

    Laten we beginnen met wat Growth hacking is, Growth hacking zijn experimenten voor oplossingen die groeiproblemen moeten oplossen. Dit is een nieuwe marketing aanpak die met name wordt gedreven door d ...

    Bekijk het artikel »
  • B2B SEO en Geoptimaliseerde Afbeeldingen

    Geschreven door: op woensdag 12 augustus 2020

    In een tijd waarin 27% van het koopproces van B2B kopers met eigen online research wordt doorgebracht is het essentieel om een goed vindbare website te hebben. Afbeeldingen kunnen, indien geoptimalise ...

    Bekijk het artikel »
  • Prospects zoeken B2B

    Geschreven door: op woensdag 12 augustus 2020

    Het zoeken van B2B prospects is een uitdaging voor elk bedrijf. Met name kwalitatieve B2B prospects.Door vooraf onderzoek te doen naar bedrijven die voldoen aan je criteria en je marketing hierop aan ...

    Bekijk het artikel »
Bel 072 5345 888
Meer dan 40 bedrijven vertrouwen op ons
Allrig is de alles in een leverancier binnen de energie-industrie
AOC is een toonaangevend wereldwijd bedrijf actief in de verkoop van kwaliteitsharsen
ERIKS is een toonaangevende en innovatieve leverancier aan de procesindustrie en aan machinebouwers, die zowel de rol van specialist als die van brede MRO-leverancier vervult
Industrieel dienstverlener Heinen & Hopman Engineering uit Bunschoten is dé wereldwijde specialist op het gebied van klimaatbeheersing
Handicare is een internationale organisatie die ouderen helpt om hun dagelijks leven gemakkelijker te maken door het produceren van hoogwaardige trapliften
Op de hoogte blijven?

Meld u aan voor de gratis nieuwsbrief om op de hoogte te blijven van onze activiteiten