Al fin luego de mucho luchar ya encontramos la contestación de este asunto que muchos lectores de nuestro sitio tienen. Si quieres aportar algo más puedes dejar tu información.
Solución:
Eso solo sucedería si PostCode
le falta un espacio. Podría agregar condicionalidad tal que todos 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)
CHARINDEX
regresará 0
si no hay espacios en el string y luego buscas una subcadena de -1
longitud.
Puede agregar un espacio final al final del string para asegurar que siempre haya al menos un espacio y evitar este problema.
SELECT SUBSTRING(PostCode, 1 , CHARINDEX(' ', PostCode + ' ' ) -1)
Esto se debe a que el CHARÍNDICE-1 devuelve un valor -ive si la búsqueda de ” ” (espacio) es 0. La solución más sencilla sería evitar ‘-ve‘ añadiendo
ABS(CHARINDEX(' ', PostCode ) -1))
que devolverá solo + cinco valores para su longitud, incluso si CHARINDEX(' ', PostCode ) -1)
es un valor -ve. ¡Corrígeme si me equivoco!
Eres capaz de asistir nuestra labor fijando un comentario o puntuándolo te damos la bienvenida.