Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/08/2015, 05:55
mariolos
 
Fecha de Ingreso: junio-2006
Mensajes: 34
Antigüedad: 17 años, 11 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