Hier is een versie met SUBSTRING
en CHARINDEX
voor versies van SQL SERVER vóór SQL Server 2016 wanneer STRING_SPLIT
werd geïntroduceerd.
Een van de volgende werken:
SELECT SUBSTRING(@string, CHARINDEX(' ', @string) +1, 20)
SELECT SUBSTRING(@string, CHARINDEX(' ', @string) +1, DATALENGTH(@string) - CHARINDEX(' ', @string) +1 )
We moeten de positie van de spatie vinden met CHARINDEX (die een getal retourneert dat aangeeft waar de string (de spatie) begint. De string die we willen selecteren begint echter na de spatie, daarom moeten we 1 (+1) toevoegen aan de startpositie van onze SUBSTRING zodat de startpositie CHARINDEX(' ', @string) + 1 wordt.
Het derde argument voor SUBSTRING is de lengte van de string die moet worden geselecteerd, in het eerste geval ga ik er gewoon van uit dat de string die je hebt opgegeven als een varchar(20) niet langer kan zijn dan 20 tekens, vandaar dat ik 20 gebruik. Opmerking SUBSTRING zal niet proberen om selecteer tekens voorbij het einde van de tekenreeks, dus het is veilig om een lengte op te geven die langer is dan het aantal resterende tekens.
Mijn tweede voorbeeld haalt de lengte van de string die moet worden geselecteerd op basis van de lengte van de totale string (DATALENGTH) minus het aantal tekens vóór onze selectie (CHARINDEX + 1)