Hi @Ronald Van Der Westhuizen ,
You could create a split function like String_Split as below:
CREATE FUNCTION [dbo].[SplitString]
(
@List NVARCHAR(MAX),
@Delim VARCHAR(255)
)
RETURNS TABLE
AS
RETURN ( SELECT [Value] FROM
(
SELECT
[Value] = LTRIM(RTRIM(SUBSTRING(@List, [Number],
CHARINDEX(@Delim, @List + @Delim, [Number]) - [Number])))
FROM (SELECT Number = ROW_NUMBER() OVER (ORDER BY name)
FROM sys.all_objects) AS x
WHERE Number <= LEN(@List)
AND SUBSTRING(@Delim + @List, [Number], LEN(@Delim)) = @Delim
) AS y
);
Then call this function as below:
declare @records table
(
ID_Number int,
ID varchar(100),
Name varchar(100),
surname varchar(100)
)
insert into @records values
(1,'3','Sam','Matt'),
(2,'4,5','Jones','Jenson'),
(3,'9','Carl','Smith')
SELECT ID_Number,value, name, surname
FROM @records
CROSS APPLY [dbo].[SplitString](ID, ',');
Output:
ID_Number value name surname
1 3 Sam Matt
2 4 Jones Jenson
2 5 Jones Jenson
3 9 Carl Smith
Best regards
Melissa
If the answer is helpful, please click "Accept Answer" and upvote it.
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.
Hot issues November--What can I do if my transaction log is full?
Hot issues November--How to convert Profiler trace into a SQL Server table