Оператор CASE, как @SQLChao, был моим первым выбором.Вот другой способ.
-- Sample data
DECLARE @table TABLE(Item_Code int, Length decimal(6,2), Width decimal(6,2), Height decimal(6,2))
INSERT @table VALUES (123445,42.50,52.63,82.00),(123999,20.50,20.50,10.00),(123000,22.50,22.50,90.00),
(123444,22.50,90.00,90.00),(123555,90.00,90.00,90.00),(123222,100,90.00,90.00);
-- solution
SELECT
Item_Code,
Length = fx.mx,
Width = CASE WHEN t.Width = fx.mx THEN Length ELSE Width END,
Height = CASE WHEN t.Height = fx.mx THEN Length ELSE Height END
FROM @table t
CROSS APPLY
(
SELECT MAX(x), MIN(x)
FROM (VALUES (t.Length),(t.Width), (t.Height)) f(x)
) fx(mx,mn);