Плохой / странный дизайн, но за что, надеюсь, одноразовое исправление;
;with TEST ([Ship Qty], Size) as (
select 1,'100 EA' union all
select 3,'60 EA' union all
select 2,'60X3ML' union all
select 2,'60X2ML' union all
select 2,'60' union all
select 2,'1 X3PP'
)
select
[Ship Qty],
Size,
[Ship Qty] * (
cast(substring(Size, 1, patindex('%[^0-9]%', Size + '/') - 1) as int)
*
case when charindex('X', Size, 1) > 0 then
cast(substring(substring(Size, charindex('X', Size) + 1, len(Size)), 1, patindex('%[^0-9]%', substring(Size, charindex('X', Size) + 1, len(Size)) + '/') - 1) as int)
else
1
end
)
from TEST
Для
Ship Qty Size (No column name)
1 100 EA 100
3 60 EA 180
2 60X3ML 360
2 60X2ML 240
2 60 120
2 1 X3PP 6