Ver Mensaje Individual
  #4  
Antiguo 10-06-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 28
jachguate Va por buen camino
Supongo que trabajas con interbase/firebird, y trataré de explicartelo yo.

Supongamos que una consulta devuelve las siguientes columnas:

Código:
  Codigo     ShortInt
  Nombre     VarChar(40)
  Apellidos  VarChar(40)
  Saldo      Double Precision
Para realizar la unión de esta con otra consulta, la segunda tiene que devolver el mismo número de columnas, en el mismo orden y con los mismos tipos de datos.

Si devolviera algo como:

Código:
  Codigo     Integer
  Nombre     VarChar(40)
  Apellidos  VarChar(40)
  Saldo      Float
Es necesario hacer un CAST a las columnas que difieren en el tipo de datos en alguna de las consultas para que el motor acepte la unión.

He visto este comportamiento principalmente en ib/fb. Hay otros motores que "promueven" automáticamente los tipos de datos, aplicando las conversiones internamente, siempre que estas sean posibles.

En el caso particular del uso de NULL:

Código SQL [-]
Select null NombreCampo
  from tabla;

Tambien en IB/FB, hay que aplicarle un CAST al tipo de dato que tendrá la columna en el resultado final de la unión, puesto que ib/fb se porta bastante tontin en este aspecto y no entiende que el null podria unirlo con una columna de cualquier otro tpo de datos.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita