Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Concadenar dos campos (https://www.clubdelphi.com/foros/showthread.php?t=53024)

GustavoCruz 08-02-2008 01:07:16

Concadenar dos campos
 
Hola amigos del foro, mi inquietud ahora es saber si hay alguna forma de concadenar dos campos; uno de tipo Texto y otro de tipo Numero.

Trabajo con una base de datos Access, el código que utilizo es el siguiente:
Código SQL [-]
select campo1Texto+" "+campo2Numero from tabla

sé que esto se puede solucionar por otros medios como con las propiedades de los campo, en este caso,
Código Delphi [-]
tablacampo2Numero.AsString

pero me gustaría saber si hay alguna forma de hacerlo directamente desde la consulta.

Gracias por vuestro tiempo...

gendelphi 08-02-2008 01:13:49

La verdad nunca he trabajado en Access, pero en Firebird u Oracle lo hago asi:

Código SQL [-]
SELECT campo1 || '  ' || campo2
FROM tabla

GustavoCruz 08-02-2008 01:19:30

Hola gendelphi.

...Pero eso funciona con dos campos de diferentes tipos, es decir, mi problema consiste en concadenar directamente en la consulta dos campos uno de ellos es numérico y el otro alfanumérico:confused:

Gracias por tu sugerencia

gendelphi 08-02-2008 01:27:17

Lo acabo de probar en Firebird 2, y si funciona, si concatena los campos numeric con varchar.

jachguate 08-02-2008 08:45:46

Te recuerdo que la mayoría de motores SQL, en lo posible, se hace la conversión automática de tipos.

Generalmente, podes pasar de cualquier tipo (que no sea blob) directamente a cadena, sin aplicar un molde.

Así, podes tener esto:
Código SQL [-]
select fecha||edad||precio||direccion
  from tabla;
Y te devolverá una cadenota!.

En mi experiencia esto trabaja bien con firebird, sql server, oracle, interbase, etc.

:D

Hasta luego.

;)

GustavoCruz 08-02-2008 18:32:14

Hola jachguate, he probado lo que me dices pero no encuentro solución, por el contrario me da un mensaje que dice "Uso de barras verticales no válido en la expresión de consulta fecha||edad" :(
Código SQL [-]
select fecha||edad||precio||direccion
  from tabla;

entodo caso gracias por vuestro tiempo...:)

hecospina 08-02-2008 20:05:23

Hola
Puedes probar convirtiendo el campo entero en cadena

select campo.texto+' '+cast(campo.entero as char (16)) as concatenado from tabla

Para los demas campos puedes hacer lo mismo, en los campos fecha siempre devolvera el formato mm/dd/aaaa

GustavoCruz 08-02-2008 20:25:27

Hola hecospina, realmente no sé qué está sucediendo :o:o:o, pero la sugerencia que me haces me nuestra el siguiente mensaje: "ERROR NO ESPECIFICADO".:confused::confused::confused:

Les recuerdo, estoy trabajado con una DB Access

Gracias por vuestro tiempo...:)

GustavoCruz 08-02-2008 20:41:34

Lo he solucionado, la forma de concatenar dos campos, como en mi caso; es utilizando los caracteres (&) de esta forma:

Código SQL [-]
select cnenrutado & " " &  cncodigo as codigo, usapellidos, cndireccion, runombre, esnombre, banombre, cncodigo, fcnumero,
fcemision, fcfacturado, fcleyenda, fcpendientes, fcoportuno, fccorte, dfagua, dfalcantarillado, dfaseo, dfconvenio, 
dfsubsidio from ustable, cntable, fctable, dftable, rutable, batable, estable where uscodigo=cnuscodigo and 
fccncodigo = cncodigo and fcnumero=dffnumero and rucodigo=cnrucodigo and
rucodigo=cnrucodigo and escodigo=cnescodigo

los campos cnenrutado y cncodigo son campos numéricos y al momento de concatenarlos con un espacio, me mostraba un error (El proveedor de datos u otro servicio devolvió un estado E_FAIL).


Gracias a todos por el tiempo que me dedicaron :)

felipe88 08-02-2008 20:46:21

Mira aqui...
Tambien encontre algo en la ayuda de Access... por algo la trae :cool:

Saludos

jachguate 09-02-2008 02:08:54

Cita:

Empezado por GustavoCruz (Mensaje 264429)
Hola jachguate, he probado lo que me dices pero no encuentro solución, por el contrario me da un mensaje que dice "Uso de barras verticales no válido en la expresión de consulta fecha||edad" :(

Cita:

Empezado por GustavoCruz
Les recuerdo, estoy trabajado con una DB Access

Cuándo hice la aclaración, aunque no fuí explicito, estaba refiriéndome a motores que cumplen con el estándar SQL. Lamentablemente Access no es uno de ellos.

Hasta luego.

;)

MaSSaKKre 07-03-2009 09:04:41

Cita:

Empezado por GustavoCruz (Mensaje 264456)
Lo he solucionado, la forma de concatenar dos campos, como en mi caso; es utilizando los caracteres (&) de esta forma:

Código SQL [-]select cnenrutado & " " & cncodigo as codigo, usapellidos, cndireccion, runombre, esnombre, banombre, cncodigo, fcnumero, fcemision, fcfacturado, fcleyenda, fcpendientes, fcoportuno, fccorte, dfagua, dfalcantarillado, dfaseo, dfconvenio, dfsubsidio from ustable, cntable, fctable, dftable, rutable, batable, estable where uscodigo=cnuscodigo and fccncodigo = cncodigo and fcnumero=dffnumero and rucodigo=cnrucodigo and rucodigo=cnrucodigo and escodigo=cnescodigo


los campos cnenrutado y cncodigo son campos numéricos y al momento de concatenarlos con un espacio, me mostraba un error (El proveedor de datos u otro servicio devolvió un estado E_FAIL).


Gracias a todos por el tiempo que me dedicaron :)


amigo tu explicación me ha sido de gran ayuda, ya tenia un ratito leyendo en el foro hasta que encontré este tema y pude solucionar un problemita de concatenación que tenía en mi consulta SQL, uso Delphi 2005 con Acces.

Gracias a todos xq aunque casi no escribo siempre leo el foro y siempre hay quien me saca de una duda sin antes preguntar nada jejejeje :D


La franja horaria es GMT +2. Ahora son las 07:30:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi