Non attenersi al tuo design attuale. I tuoi gruppi ripetuti sono ingombranti e autolimitanti... Cosa succede quando qualcuno carica 151 volte? Normalizza questa tabella in modo da avere uno di ogni tipo per riga anziché 150. Non avrai bisogno di mappare in questo modo poiché puoi selezionare SAPDATA da positioncol senza preoccuparti se è 1-150.
Probabilmente vuoi una tabella PROJECTS con un ID, una tabella PROJECT_UPLOADS con un ID e un FK nella tabella PROJECTS. Questa tabella avrebbe Position, SourceDate, Formula e IsActive dato il tuo caso d'uso sopra.
Quindi potresti fare cose come
select p.name, pu.position da PROJECTS p inner join PROJECT_UPLOADS pu on pu.projectid =p.id WHERE pu.position ='SAPDATA'
ecc.