Nie trzymaj się swojego obecnego projektu. Twoje powtarzające się grupy są niesforne i samoograniczające się... Co się dzieje, gdy ktoś przesyła 151 razy? Znormalizuj tę tabelę, aby mieć po jednym z każdego typu w wierszu, a nie 150. Nie będziesz potrzebować mapowania w ten sposób, ponieważ możesz wybrać SAPDATA z kolumny pozycji bez martwienia się, czy jest to 1-150.
Prawdopodobnie chcesz tabelę PROJECTS z identyfikatorem, tabelę PROJECT_UPLOADS z identyfikatorem i FK do tabeli PROJECTS. Ta tabela miałaby pozycję, datę źródła, formułę i IsActive, biorąc pod uwagę Twój przypadek użycia powyżej.
Wtedy możesz robić takie rzeczy jak
wybierz p.name, pu.position z PROJECTS p inner join PROJECT_UPLOADS pu on pu.projectid =p.id GDZIE pu.position ='SAPDATA'
itp.