Не проверено в SQL Server 2000, но при условии, что Level
и Value
являются положительными целыми числами, что-то вроде следующего должно работать без вложенной SELECT
.
SELECT ID,
MAX(Level) AS Level,
Max(Level * Cast(10000000000 AS NUMERIC(38)) + Value)
% 10000000000 AS Value
FROM T
GROUP BY ID
или версии, которая справляется сотрицательные значения
SELECT ID,
Max(Level) AS Level,
Cast(Substring(Max(CASE
WHEN Level < 0 THEN 0x00
ELSE 0x01
END + Cast(Level AS BINARY(4)) +
Cast(Value AS BINARY(4))), 6, 4) AS INT) AS Value
FROM T
GROUP BY ID