Här är en version som använder SUBSTRING
och CHARINDEX
för versioner av SQL SERVER före SQL Server 2016 när STRING_SPLIT
introducerades.
Något av följande fungerar:
SELECT SUBSTRING(@string, CHARINDEX(' ', @string) +1, 20)
SELECT SUBSTRING(@string, CHARINDEX(' ', @string) +1, DATALENGTH(@string) - CHARINDEX(' ', @string) +1 )
Vi måste hitta utrymmets position med CHARINDEX (som returnerar ett tal som representerar var strängen (mellanrummet) börjar. Men strängen som vi vill välja börjar efter mellanslag, därför måste vi lägga till 1 (+1) till startposition för vår SUBSTRING så att startpositionen blir CHARINDEX(' ', @string) + 1.
Det 3:e argumentet för SUBSTRING är längden på strängen som ska väljas, i det första fallet antar jag bara att strängen du angav som en varchar(20) inte kan vara längre än 20 tecken, därför använder jag 20. Obs SUBSTRING kommer inte att försöka välj tecken efter slutet av strängen, så det är säkert att ange en längd som är längre än antalet kvarvarande tecken.
Mitt andra exempel får längden på strängen att välja baserat på att den är längden på den totala strängen (DATALENGTH) minus antalet tecken före vårt val (CHARINDEX + 1)