O.T.: Concatenar dos columnas en tabla MySQL y dar formato

75 views
Skip to first unread message

Departamento de Soporte Avantio Development

unread,
Jun 23, 2021, 9:33:32 AM6/23/21
to Comunidad de Visual Foxpro en Español
Cordial saludo.

En mi aplicativo de VFP debo llenar una nueva columna con los datos concatenados en dos columnas separadas, una contiene un código caracter, por ejemplo: 0110004 y el otro un número decimal que puede 1 o 2 o 1.5.

Con base en esas columnas debo llenar una nueva tipo string que contiene las dos columnas pero en el siguiente formato, el número debe tener 3 entros y 2 decimales, llenar con ceros a la izquierda los enteros, sí el número es 1, debe quedar 001.00 (con punto) y si es 1.5 debe quedar 001.50; posteriormente concatenarlo a la otra columa para quedar de esta manera:
0110004001.00 en el primer caso o
0110004001.50 en el segundo caso.

¿Cómo se puede hacer ésto en una consulta MySQL?

Departamento de Soporte Avantio Development

unread,
Jun 23, 2021, 9:55:06 AM6/23/21
to Comunidad de Visual Foxpro en Español
Me autorespondo.

Luego de buscar y combinar instrucciones hice lo siguiente:

SET @num = 1.50 ;
SET @codigo = '0110004' ;

SELECT CONCAT(@codigo,LPAD(CONVERT(@num, CHAR), 6, '0'))  AS Numero ;

Y me da el resultado que requeria. Gracias a todos.

Hernan

unread,
Jun 23, 2021, 9:56:37 AM6/23/21
to Comunidad de Visual Foxpro en Español
Buen dia
Humildemente

    set @campo1 = '0110004';
    set @campo2 = round(3/2,2);
    select concat(@campo1, @campo2) as campo3


--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/19d3d2f0-6c29-4428-9b67-e7d219bea73en%40googlegroups.com.

Departamento de Soporte Avantio Development

unread,
Jun 24, 2021, 8:45:16 AM6/24/21
to Comunidad de Visual Foxpro en Español
Hernan, gracias por la respuesta, sin embargo, el detalle es que el número a concatenar debe tener el formato de tres enteros y dos decimales con ceros a la izquierda si el número tiene 1 ó 2 digitos, por ejemplo: para el número 1.50 debe concatenarse como 001.50.

Saludos.

Hernan

unread,
Jun 24, 2021, 9:36:43 AM6/24/21
to Comunidad de Visual Foxpro en Español
 Buen dia
Nuevamente:

set @campo1 = '0110004';
set @campo2 = round(3/2,2);
set @entero = truncate(3/2,0);
set @decimales = @campo2 - truncate(3/2,0);

select  concat(@campo1, lpad(@entero,3,'0'), right(@decimales,3)) as campo3;

Reply all
Reply to author
Forward
0 new messages