Eso solo sucedería si PostCode le falta un espacio. Puede agregar condicionalidad de modo que todos los PostCode se recupera si no se encuentra un espacio de la siguiente manera
select SUBSTRING(PostCode, 1 ,
case when CHARINDEX(' ', PostCode ) = 0 then LEN(PostCode)
else CHARINDEX(' ', PostCode) -1 end)