Saltar al contenido

Parámetro de longitud no válido pasado a la función LEFT o SUBSTRING

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *