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

consulta concatenar campos en un select

Estas en el tema de consulta concatenar campos en un select en el foro de Bases de Datos General en Foros del Web. Estimados necesito saber si me pueden ayudar a concatenar unos campos en un select, he intentado de varias formas, pero no he tenido exito. ejemplo: ...
  #1 (permalink)  
Antiguo 25/08/2015, 05:55
 
Fecha de Ingreso: junio-2006
Mensajes: 34
Antigüedad: 18 años, 5 meses
Puntos: 1
consulta concatenar campos en un select

Estimados necesito saber si me pueden ayudar a concatenar unos campos en un select, he intentado de varias formas, pero no he tenido exito.

ejemplo:
campo1 = 20150825 --// numérico
campo2 = varia entre 1 y 20 -// numérico
campo3= 25123 --// valor númerico

La idea es cancatenar y quede asi:
campo1+campo2+campo3

para valores en el campo2 menores de 10 que agregue un 0 adelante
150825012523
ó
150825102523 -> cuando el campo2 es mayor q 9

intente con algo como esto, es este sql puse los valores, pero estos obviamente se sacan de los campos de las tablas:
Código SQL:
Ver original
  1. SELECT SUBSTRING(20150825  FROM 3 FOR 6) || CASE WHEN 1 < 10 THEN '0'||to_char(1,'9') ELSE 1 END || 25123;
el problema es que me da el error:
ERROR: los tipos integer y text no son coincidentes en CASE
SQL state: 42804

cuando force los valores a numéricos no me entrega el resultado esperado para valores mejores de 9 en la segunda variable:
Código SQL:
Ver original
  1. SELECT SUBSTRING(20150825  FROM 3 FOR 6) || CASE WHEN 1 < 10 THEN to_number('0'||to_char(1,'9'),'99') ELSE 11 END || 25123 AS campo_combinado;

esto no da error, pero no agrega el 0 delante del campo2

gracias.

Última edición por gnzsoloyo; 25/08/2015 a las 10:39 Razón: explicando mejor
  #2 (permalink)  
Antiguo 25/08/2015, 07:47
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años, 7 meses
Puntos: 31
Respuesta: consulta concatenar campos en un select

Tienes que transformar los números a textos antes de concatenarlos, si son números te los sumará y te dará el resultado de la suma. Por eso hay que transformarlos a texto antes.

Si haces una Select de 2+3 --> Obtendrás 5
Si haces una select de texto de (2)+texto de (3) --> Obtendrás 23 (pero obtendrás un texto que diga 23, no el número 23)

Te aconsejo que si vas a trabajar con códigos numéricos, pero que son códigos y no son números... utilices textos en la base de datos.

Por ejemplo, para el número de teléfono se suele utilizar texto, porque no vas a hacer nunca operaciones con el número de teléfono de contacto de alguien. No vas a sumarlo a nada, ni multiplicarlo, ni sacar un porcentaje. Como mucho le vas a añadir un prefijo... y en ese caso no lo vas a sumar, sino añadir dígitos delante. Concatenar. Por eso muchísimas veces se mete el número de teléfono como si fuese texto. Y lo mismo pasa con códigos de productos o cualquier número con el que no vayas a hacer operaciones matemáticas con él... porque por ejemplo, sean números identificativos de algo.
  #3 (permalink)  
Antiguo 25/08/2015, 09:21
 
Fecha de Ingreso: junio-2006
Mensajes: 34
Antigüedad: 18 años, 5 meses
Puntos: 1
Respuesta: consulta concatenar campos en un select

gracias por la respuesta.. me ayudo,, mira ahora me funciona.. pero al medio me deja un espacio en blanco, sabran como poder sacarlo?
Código SQL:
Ver original
  1. SELECT SUBSTRING(20150825  FROM 3 FOR 6) || CASE WHEN '1' < '10' THEN '0'||to_char(2,'9') ELSE '11' END || 25123 AS campo_combinado;
resultado: "1508250 225123"

Última edición por gnzsoloyo; 25/08/2015 a las 10:39
  #4 (permalink)  
Antiguo 25/08/2015, 19:49
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: consulta concatenar campos en un select

que manejador de bases de datos usas???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 26/08/2015, 17:06
 
Fecha de Ingreso: junio-2006
Mensajes: 34
Antigüedad: 18 años, 5 meses
Puntos: 1
Respuesta: consulta concatenar campos en un select

uso postgresql.
  #6 (permalink)  
Antiguo 26/08/2015, 17:16
 
Fecha de Ingreso: junio-2006
Mensajes: 34
Antigüedad: 18 años, 5 meses
Puntos: 1
Respuesta: consulta concatenar campos en un select

Gracias ya tengo la solucion..

Código PHP:
SELECT SUBSTRING('20150825'  FROM 3 FOR 6) || CASE WHEN '1' '10' THEN '0'||to_char(1,'FM9999') ELSE '11' END || 25123 AS campo_combinado

:)

Etiquetas: campo, campos, concatenar, select, sql, tabla, valor
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 11:44.