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)