私は間違っているのですか?これを行うより良い方法がありますか?文字列から長さを切り出し、それを数値に変換しますか?私は数値エラーにvarcharを取得していますか?
UPDATE VF_CasINV_Cost
SET TotWgt = CASE
WHEN (Dimension like '%x%') THEN
(cast(left(Dimension, charindex('X', Dimension, 1) - 1) as numeric)) *
(cast(substring(Dimension, 1 + charindex('X', Dimension, 1), len(Dimension)) as numeric))/144.00
WHEN TotWgt = 0 and [Wt/Ft] > 0 THEN (Dimension * [Wt/Ft]) * [Count]
WHEN TotWgt = 0 and [Wt/Sht] > 0 THEN ((Dimension * [Wt/Sht])/100) * [Count]
WHEN TotWgt = 0 and [Wt/Pc] > 0 THEN ((Dimension * [Wt/Pc])/100) * [Count]
ELSE TotWgt
END --TotWgt, Item#, TotWgt, [Wt/Ft], [Wt/Sht], [Wt/Pc], [Count], Dimension, TotWgt
FROM VF_CasINV_Cost
WHERE (CalendarYear = 2010) AND (Item# = Item#) AND (ID = ID) AND (Item# < 99999990)
AND K = 'K' AND D = '' AND C = '' AND (Unit = 'cwt' OR Unit = 'cwts')
あなたはこれを単純化するためにGOTを持っています。あなたのスキーマがどのようなものなのか、どの文字列が処理されているのかなどはわかりません。 – n8wrl
どのスキーマがどのタイプの列が – sll