I have a column with values as mentioned below.
Transaction_ID
GT980 FR563
BR923 DE498 QS347
HB743
How can I convert and bring the results like below. I need to split the value with space delimiter. Any suggestions on how this can be achieved.
Transaction_ID
GT980
FR563
BR923
DE498
QS347
HB743
>Solution :
Create a Split string function in sql.
CREATE FUNCTION fnSplitString
(
@string VARCHAR(MAX),
@delimiter VARCHAR(MAX)
)
RETURNS @output TABLE(splitdata VARCHAR(MAX))
BEGIN
DECLARE @Xml XML
SET @Xml = CAST(('<a>'+REPLACE(@string,@delimiter,'</a><a>')+'</a>') AS XML)
INSERT INTO @output (splitdata)
SELECT ltrim(rtrim(A.value('.', 'VARCHAR(MAX)'))) FROM @Xml.nodes('a') AS FN(a)
RETURN
END
and then use it as
select cs.*
from yourtable
cross apply fnSplitString (Transaction_ID, ' ') cs