Hi @Dhanekula, Shashikanth ,
Please try the following solution.
SQL
-- DDL and sample data population, start
DECLARE @tbl TABLE (ID INT IDENTITY PRIMARY KEY, bad_data VARCHAR(200));
INSERT INTO @tbl (bad_data) VALUES
('LTY - REEL - Mark Hudson - 999.265.6233'),
('IOO Craig David 123-456-7891'),
('LTK - MEKL - MIKAL MEKL - 123.558.1234'),
('RAW- RANDY JHON- 123-456-7891'),
('MNQR- JERRY RAM 123-456-7891'),
('LTK - MEKL - TERRANCE LAWRENCE - 123.456.7891'),
('LTK - MEKL - Joseph Rick - 1234567891'),
('MDKL JERRY RAM 123 456 7891'),
('MUINK- OSCAR PISTARI- 123-456-7891'),
('MUINK-Leo David'),
('ALT - Stephen Smith 123-456-7891');
-- DDL and sample data population, end
DECLARE @separator CHAR(1) = '-';
SELECT t.*
, c.value('(/root/r[1]/text())[1]', 'VARCHAR(20)') AS result1
, IIF(cnt = 3
, c.query('(data(/root/r[position()=(2,3)]/text()))').value('text()[1]', 'VARCHAR(20)')
, c.query('(data(/root/r[position()=(3,4)]/text()))').value('text()[1]', 'VARCHAR(20)')) AS result2
FROM @tbl AS t
CROSS APPLY (SELECT REPLACE(REPLACE(TRIM('-' FROM REPLACE(LEFT(bad_data, PATINDEX('%[0-9]%', Bad_Data + '0') - 1), SPACE(1), @separator)),'--','-'),'--','-')) AS t1(tokens)
CROSS APPLY (SELECT TRY_CAST('<root><r>' +
REPLACE(tokens, @separator, '</r><r>') +
'</r></root>' AS XML)) AS t2(c)
CROSS APPLY (SELECT c.value('count(/root/r)', 'INT')) AS t3(cnt);
Output
+----+-----------------------------------------------+---------+-------------------+
| ID | bad_data | result1 | result2 |
+----+-----------------------------------------------+---------+-------------------+
| 1 | LTY - REEL - Mark Hudson - 999.265.6233 | LTY | Mark Hudson |
| 2 | IOO Craig David 123-456-7891 | IOO | Craig David |
| 3 | LTK - MEKL - MIKAL MEKL - 123.558.1234 | LTK | MIKAL MEKL |
| 4 | RAW- RANDY JHON- 123-456-7891 | RAW | RANDY JHON |
| 5 | MNQR- JERRY RAM 123-456-7891 | MNQR | JERRY RAM |
| 6 | LTK - MEKL - TERRANCE LAWRENCE - 123.456.7891 | LTK | TERRANCE LAWRENCE |
| 7 | LTK - MEKL - Joseph Rick - 1234567891 | LTK | Joseph Rick |
| 8 | MDKL JERRY RAM 123 456 7891 | MDKL | JERRY RAM |
| 9 | MUINK- OSCAR PISTARI- 123-456-7891 | MUINK | OSCAR PISTARI |
| 10 | MUINK-Leo David | MUINK | Leo David |
| 11 | ALT - Stephen Smith 123-456-7891 | ALT | Stephen Smith |
+----+-----------------------------------------------+---------+-------------------+