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.