I inherited a table that has these columns
ID,  Name,  Subjects
--   ----   --------
33   Mike   Math,English,Physics
24   Paul   Art,French,Med,English,Math
58   Sami   Physics,Biology
22   Nora   Math,English,Art
76   Mona   Math,English,French,Med,Physics
39   Lila   Physics
19   Dave   Math,Biology,Physics
48   Jade   English,French,Physics
82   Mark   Med,Biology,Physics
23   Nina   Biology,English,Physics
I am trying to break this into my structured table.
ID,  Name,  Subject
--   ----   --------
33   Mike   Math
33   Mike   English
33   Mike   Physics
24   Paul   Art
24   Paul   French
24   Paul   Med
24   Paul   English
I tried with using STRING_SPLIT in the select statement
SELECT ID, Name, STRING_SPLIT(Subjects, ',') AS SUbject
FROM Students
but that did not work
'STRING_SPLIT' is not a recognized built-in function name.
How can I split these subjects into rows?
This script should generate the table and data
declare @Students as table (ID int, Name varchar(4), Subjects varchar(100))
INSERT INTO @Students (ID, Name, Subjects)
VALUES 
(33,'Mike','Math,English,Physics'),
(24,'Paul','Art,French,Med,English,Math'),
(58,'Sami','Physics,Biology'),
(22,'Nora','Math,English,Art'),
(76,'Mona','Math,English,French,Med,Physics'),
(39,'Lila','Physics'),
(19,'Dave','Math,Biology,Physics'),
(48,'Jade','English,French,Physics'),
(82,'Mark','Med,Biology,Physics'),
(23,'Nina','Biology,English,Physics')
SELECT * FROM @Students
Response to suggested duplicate
Although this question was closed suggesting it similar to Split function equivalent in T-SQL? it is actually not.
That question is a simple like which a simple FROM string_split() can work for. I got the answer thanks to Gordon. I thought it might help other with the same issue. If you have a similar issue, you may find the answer down.
 
     
     
    