Zde je verze používající SUBSTRING
a CHARINDEX
pro verze SQL SERVER starší než SQL Server 2016 při STRING_SPLIT
byl představen.
Kterákoli z následujících funkcí:
SELECT SUBSTRING(@string, CHARINDEX(' ', @string) +1, 20)
SELECT SUBSTRING(@string, CHARINDEX(' ', @string) +1, DATALENGTH(@string) - CHARINDEX(' ', @string) +1 )
Pozici mezery potřebujeme najít pomocí CHARINDEXU (který vrací číslo reprezentující, kde řetězec (mezera) začíná. Řetězec, který chceme vybrat, však začíná za mezerou, proto musíme do pole přidat 1 (+1). počáteční pozice našeho PODŘETĚZCE tak, aby počáteční pozice byla CHARINDEX(' ', @string) + 1.
3. argument pro SUBSTRING je délka vybraného řetězce, v prvním případě pouze předpokládám, že řetězec, který jste zadali jako varchar(20), nemůže být delší než 20 znaků, proto používám 20. Poznámka SUBSTRING se nebude snažit vyberte znaky za koncem řetězce, takže je bezpečné zadat délku delší, než je počet zbývajících znaků.
Můj druhý příklad získá délku řetězce k výběru na základě délky celkového řetězce (DATALENGTH) mínus počet znaků před naším výběrem (CHARINDEX + 1)