If you had a "tally" table of numbers this would cover to an INT. You could probably adapt it to create a varbinary insteadDECLARE @hx varchar(1000), @intMyInt bigint, @intMyChar intSELECT @hx = 'F041200FA100FA', @intMyInt = 0SELECT @intMyChar = ASCII(SUBSTRING(@hx, MyNumber, 1)), @intMyInt = (@intMyInt * 16) + CASE WHEN @intMyChar <= ASCII('9') THEN @intMyChar - ASCII('0') WHEN @intMyChar <= ASCII('F') THEN @intMyChar - ASCII('A') + 10 ELSE NULL ENDFROM dbo.MyNumbersListWHERE MyNumber <= LEN(@hx)ORDER BY MyNumberSELECT [@intMyInt]=@intMyIntKristen