¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo recortar ceros iniciales en números y mantener alfanuméricos: Guía paso a paso y función de verificación - Gokul

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 8 Vistas
0
Cargando...

Hola,

Tenemos un escenario en el que necesitamos recortar los ceros iniciales solo para los Materiales que tienen números y deben mantenerse para los Materiales que son alfanuméricos.

000000000000012345 - Debería cambiarse a 12345

001-AA-5TEST - No se necesita cambio para este.

¿Existe una función para verificar si un valor en una columna es alfanumérico?

Por favor, sugiere.

Gracias,

Gokul

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola,

También puedes usar la siguiente fórmula que fue realmente rápida.

Fórmula 1:

if( match("PRODUCT_ID", '*A*') OR match("PRODUCT_ID", '*B*') OR match("PRODUCT_ID", '*C*') OR match("PRODUCT_ID", '*D*') OR match("PRODUCT_ID", '*E*') OR match("PRODUCT_ID", '*F*') OR match("PRODUCT_ID", '*G*') OR match("PRODUCT_ID", '*H*') OR match("PRODUCT_ID", '*I*') OR match("PRODUCT_ID", '*J*') OR match("PRODUCT_ID", '*K*') OR match("PRODUCT_ID", '*L*') OR match("PRODUCT_ID", '*M*') OR match("PRODUCT_ID", '*N*') OR match("PRODUCT_ID", '*O*') OR match("PRODUCT_ID", '*P*') OR match("PRODUCT_ID", '*Q*') OR match("PRODUCT_ID", '*R*') OR match("PRODUCT_ID", '*S*') OR match("PRODUCT_ID", '*T*') OR match("PRODUCT_ID", '*U*') OR match("PRODUCT_ID", '*V*') OR match("PRODUCT_ID", '*W*') OR match("PRODUCT_ID", '*X*') OR match("PRODUCT_ID", '*Y*') OR match("PRODUCT_ID", '*Z*') , "PRODUCT_ID",ltrim("PRODUCT_ID",'0'))

Fórmula 2:

if(

strlen( replace( replace( replace( replace( replace( replace( replace( replace( replace( replace( "PRODUCT_ID" , '0' , '' ) , '1' , '' ) , '2' , '' ) , '3' , '' ) , '4' , '' ) , '5' , '' ) , '6' , '' ) , '7' , '' ) , '8' , '' ) , '9' , '' ) ) > 0 , 1 , 0 )

Gracias
RufusSamuel

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

La forma más sencilla que encontré para hacer esto es utilizando la función TRIM con la extensión LEADING/TRAILING/BOTH.

Ejemplo a continuación-

Consulta: select TRIM( LEADING '0' FROM '000001234') from dummy

Resultado: 1234

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Después de publicar eso, pensé en obtener los resultados que creo que querías, todos los datos con solo los valores numéricos recortados, puedes probar una consulta algo así:

SELECT A, B FROM T where B LIKE_REGEXPR '\D'
UNION
SELECT A, LTRIM(B,'0') FROM T where NOT B LIKE_REGEXPR '\D'
ORDER BY A;

Suponiendo que haya algo para volver a ordenarlos según tu preferencia. Pero los resultados finales se ven así:

A    B
1    12345
2    001-AA-5TEST
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Tres consejos sobre eso:

1. ¡Busca antes de publicar una pregunta!

2. Las funciones regexpr_ son tus amigas para esto.

3. ¡Busca antes de publicar una pregunta!

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?