hi
hope this helps
create data script
DROP TABLE #ListSplitName
CREATE TABLE #ListSplitName (Name VARCHAR(255))
INSERT INTO #ListSplitName
VALUES
('Inv 3225366, BUK-100694, London Distribution Solutions B, PICKING 37,531 @£0.20')
SELECT 'Data',* FROM #ListSplitName
One way of doing this = STRING SPLIT
SELECT
value
FROM
#ListSplitName p
CROSS APPLY
STRING_SPLIT(Name, ',',1)
WHERE
ordinal = 2
Second way of doing this = CTE STUFF LEFT
; WITH cte AS
(
SELECT STUFF(name, 1, charindex(',',name), '') AS ok FROM #ListSplitName
)
SELECT
left(ok,charindex(',',ok)-1)
FROM
cte
– Third way of doing it
– Procedural ( but it may have its own benefits in Extremely narrow specific use case scenarios
DECLARE @delimiter varchar(1) = ','
DECLARE @FirstDelimiterPos INT ;
SELECT
@FirstDelimiterPos = CHARINDEX(@delimiter, name)
FROM
#ListSplitName
DECLARE @SecondDelimiterPos INT ;
SELECT
@SecondDelimiterPos = CHARINDEX(@delimiter, name, @FirstDelimiterPos + 1)
FROM
#ListSplitName
SELECT
SUBSTRING(name,@FirstDelimiterPos + 1, @SecondDelimiterPos - (@FirstDelimiterPos + 1))
FROM
#ListSplitName