Hi @srk ,
Please try the following solution.
SQL
-- DDL and sample data population, start
DECLARE @tbl TABLE (ID INT IDENTITY PRIMARY KEY, WorkAddress VARCHAR(MAX));
INSERT INTO @tbl VALUES
('89 Oliver''s Yard' + CHAR(13) +
'21 City Rd'+ CHAR(13) +
'London'+ CHAR(13) +
'EC1Y' + CHAR(13) + '1HP');
-- DDL and sample data population, end
DECLARE @separator CHAR(1) = CHAR(13);
SELECT t.*
, c.value('(/root/r[1]/text())[1]', 'VARCHAR(30)') AS Address1
, c.value('(/root/r[2]/text())[1]', 'VARCHAR(30)') AS Street
, c.value('(/root/r[3]/text())[1]', 'VARCHAR(30)') AS City
, c.value('(/root/r[4]/text())[1]', 'VARCHAR(30)') + SPACE(1) +
c.value('(/root/r[5]/text())[1]', 'VARCHAR(30)') AS PostCode
FROM @tbl AS t
CROSS APPLY (SELECT TRY_CAST('<root><r><![CDATA[' +
REPLACE(WorkAddress, @separator, ']]></r><r><![CDATA[') +
']]></r></root>' AS XML)) AS t1(c);
Output
+----+---------------------------------------------+------------------+------------+--------+----------+
| ID | WorkAddress | Address1 | Street | City | POstCode |
+----+---------------------------------------------+------------------+------------+--------+----------+
| 1 | 89 Oliver's Yard 21 City Rd London EC1Y 1HP | 89 Oliver's Yard | 21 City Rd | London | EC1Y 1HP |
+----+---------------------------------------------+------------------+------------+--------+----------+