Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Convertir número a texto

Estas en el tema de Convertir número a texto en el foro de SQL Server en Foros del Web. Hola... tengo el siguiente problema: Tengo 2 planillas Excel, una con datos que se actualizan a diarios (PL) y otra (RE) que almacena los registros ...
  #1 (permalink)  
Antiguo 14/05/2009, 12:26
Avatar de Snd234  
Fecha de Ingreso: mayo-2007
Ubicación: Frente al PC
Mensajes: 413
Antigüedad: 17 años
Puntos: 2
Convertir número a texto

Hola... tengo el siguiente problema:

Tengo 2 planillas Excel, una con datos que se actualizan a diarios (PL) y otra (RE) que almacena los registros que cumplan cierta condición. Ambas planilla las tengo como Linked Servers en SQL Server 2005.

En la planilla PL existen una columna para almacenar números telefónicos, algunos de los cuales pueden contener guiones, por ejemplo: 02-774763 o simplemente numeros como 85003991. Bueno, resulta que quiero pasar ese valor tal cual aparece a la planilla RE.

El problema esta, en que al hacer el traspaso el valor que es solo numérico lo almacena con el valor 7.4782e+007 mientras que el valor que posee guiones simplemente no lo guarda.

Aplique la función CONVERT para dejarlo como varchar pero no funciona. Si lo convierto a INT, el valor que es solo numérico lo traspasa tal cual, pero el que posee guión no lo guarda.

Como podría traspasar el dato tal cual aparece en la planilla original?
__________________
KIBIT.cl

Última edición por Snd234; 14/05/2009 a las 17:12
  #2 (permalink)  
Antiguo 14/05/2009, 14:04
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 9 meses
Puntos: 39
Respuesta: Convertir número a texto

Verifica el tipo de dato del campo donde guardas ese valor, seguro es numerico, cuando deberia ser alfanumerico.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 14/05/2009, 16:54
Avatar de Snd234  
Fecha de Ingreso: mayo-2007
Ubicación: Frente al PC
Mensajes: 413
Antigüedad: 17 años
Puntos: 2
Respuesta: Convertir número a texto

El problema que aunque establezca previamente que esa columna sea de texto, al traspasar el registro el formato se elimina, y queda como General. Y si después lo cambio no funciona. Y tampoco es la idea cambiarlo a mano.
__________________
KIBIT.cl

Última edición por Snd234; 14/05/2009 a las 17:13
  #4 (permalink)  
Antiguo 15/05/2009, 07:54
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 9 meses
Puntos: 39
Respuesta: Convertir número a texto

Tienes que poner el apóstrofe ( ' ) delante de cada valor, así funciona, ya lo probé.
Suerte!
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #5 (permalink)  
Antiguo 15/05/2009, 10:39
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Convertir número a texto

Excelente respueta, Excel, siempre considera a los datos ALFANUMERICOS, por tener un apostrofe (') al inicio del mismo dato.
  #6 (permalink)  
Antiguo 15/05/2009, 13:08
Avatar de Snd234  
Fecha de Ingreso: mayo-2007
Ubicación: Frente al PC
Mensajes: 413
Antigüedad: 17 años
Puntos: 2
Respuesta: Convertir número a texto

No pasa nada, le agrego el apóstrofe al valor pero lo sigue transformando a texto en la otra planilla.

Código:
INSERT INTO Excel1...HOJA1$ (column1) SELECT '''' + column1 AS column1 FROM Excel2...HOJA1$
__________________
KIBIT.cl
  #7 (permalink)  
Antiguo 15/05/2009, 14:33
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 9 meses
Puntos: 39
Respuesta: Convertir número a texto

Has probado con CAST?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #8 (permalink)  
Antiguo 15/05/2009, 15:46
Avatar de Snd234  
Fecha de Ingreso: mayo-2007
Ubicación: Frente al PC
Mensajes: 413
Antigüedad: 17 años
Puntos: 2
Respuesta: Convertir número a texto

Si, Convert y Cast... mismo resultado...
__________________
KIBIT.cl
  #9 (permalink)  
Antiguo 15/05/2009, 15:59
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Convertir número a texto

SELECT char(39) + column1 AS column1 FROM Excel2...HOJA1$
  #10 (permalink)  
Antiguo 16/05/2009, 19:37
Avatar de Snd234  
Fecha de Ingreso: mayo-2007
Ubicación: Frente al PC
Mensajes: 413
Antigüedad: 17 años
Puntos: 2
Respuesta: Convertir número a texto

No funciona.

Miren, tengo la siguiente tabla de ejemplo:



Si se fijan, las 3 columnas tienen números telefónicos, pero en distintos formatos, que son los que las planillas que necesito manejar pueden tener.

La primera contiene solo números, la segunda lo mismo, pero con un apóstrofe al inicio, por lo que reconoce como una cadena de texto, mientras que la tercera columna también es reconocido como texto, ya que algunos números contienen guiones.

Bueno, en SQL Server 2005 creo un Linked Server a esta planilla y hago un SELECT *, cuyo resultado es el siguiente:



Como ven, el resultado es el ideal, los datos se muestran tal cual estan en la planilla original.

El problema, es que la primera columna es transformada automáticamente como float, y es por eso que se ve bien, sin embargo ese valor (tel_contacto) lo necesito traspasar a otra tabla donde la columna es de tipo varchar.

Ahora si yo hago un SELECT CONVERT(varchar, tel_contacto1), ... surge el problema, ya que el valor de tel_contacto1 SQL Server lo transforma automaticamente como float, y al transformarlo a varchar se obtiene el siguiente resultado:



Y es justamente eso lo que no quiero. Ya que necesito guardar ese mismo valor como texto tal cual aparece. Las demás columnas igual se aplico la misma funcion CONVERT a varchar y se ve correctamente.

Ahora si hago un CONVERT a INT funciona para la primera y segunda columna, pero no para la tercera.

Entonces necesito saber si se puede dejar tal cual el valor de cualquiera de las 3 columnas tal cual esta.
__________________
KIBIT.cl
  #11 (permalink)  
Antiguo 16/05/2009, 22:49
Avatar de Snd234  
Fecha de Ingreso: mayo-2007
Ubicación: Frente al PC
Mensajes: 413
Antigüedad: 17 años
Puntos: 2
Respuesta: Convertir número a texto

Ya, encontre una solución: Esta consiste en identificar si el dato es numerico o no, en caso de serlo, lo transformo a una cadena de texto, de lo contrario lo dejo tal cual. De esta forma puedo mantener el mismo valor y guardarlo correctamente en la tabla que necesito.

Código:
SELECT CASE ISNUMERIC(tel_contacto1) WHEN 1 THEN LTRIM(RTRIM(STR(tel_contacto1))) ELSE tel_contacto1 END AS tel_contacto1 FROM PL...[REPORTE$]
De todas formas dejo abierta la pregunta, por si alguien sabe alguna forma mas "corta" de hacerlo.
__________________
KIBIT.cl
  #12 (permalink)  
Antiguo 17/05/2009, 16:04
Avatar de Snd234  
Fecha de Ingreso: mayo-2007
Ubicación: Frente al PC
Mensajes: 413
Antigüedad: 17 años
Puntos: 2
Respuesta: Convertir número a texto

ERROR! No e encontrado la solucion

Resulta que habia estado probando con una columna con tipo de datos mixtos, entonces siempre se comportaban como texto.

Aunque haga la diferencia entre si un valor es numerico o texto, al usar STR para convertir el numero a texto igual SQL lo sigue insertando como un valor float...

Nadie sabe alguna solucion?
__________________
KIBIT.cl
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:36.