Тьфу.Вы действительно должны исправить свою структуру данных, чтобы один столбец не имел нескольких значений.Следующее выполняет деление - вычисление компонентов:
select cast(v1.col1_1 as int) / cast(v2.col2_1 as int) as new_col1,
cast(v1.col2_2 as int) / cast(v2.col2_2 as int) as new_col2
from t cross apply
(values (left(t.col1, charindex('~', t.col1) - 1),
left(t.col1, charindex('~', t.col2) - 1)
)
) v1(col1_1, col2_1) cross apply
(values (stuff(t1.col1, 1, len(v1.col1_1) + 1, ''),
stuff(t2.col1, 1, len(v1.col2_1) + 1, '')
)
) v2(col1_2, col2_2);
Как я уже говорил, несколько значений не должны храниться в одной строке, поэтому я не рекомендую помещать это обратно в строку.