Ver Mensaje Individual
  #6  
Antiguo 25-05-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
La consulta anterior- como dije -es bastante chapucera. Aquí te pongo otra, igual de chapucera pero quizá más eficiente y manejable:

Código SQL [-]
select
  a,b,
  cast(cast(a as char(10)) || '' as float) +
  cast(cast(b as char(10)) || '' as float) suma
from tabla

suponiendo aquí, que a y b son de tipo NUMERIC. El CAST interno,

Código SQL [-]
cast(a as char(10)) || ''

fuerza el valor NULL a ser una cadena, de manera que el CAST exterior ya lo convierte a 0. Si el valor no es NULL, el doble CAST simplemente convierte a cadena y de vuelta a número sin alterar nada.

De esta manera nos evitamos los UNION y nos permite agregar más columnas a la suma. Con el método del UNION, por cada columna extra, se requeriría agregar otro tanto de consultas, es decir, con n columnas se tendrían que usar 2^n consultas en la unión.

Por otra parte, yo prefiero que sigas llamándome roman, que ése es mi nombre. Lo demás, si bien agradezco el halago, sólo son palabras. Aquí somos todos iguales.

// Saludos
Responder Con Cita