2013-10-26 34 views
1

我有两个表,我有'union all'之间。sql union所有数据类型错误与空值

我的问题,我得到的数据不匹配的错误原因,表我有select ... ,'opt' as opt from...然后在第二个表我有select ..., null as opt from...

我知道我可以有一个空字符串,但'' as opt,我不想要一个空字符串,我真的需要它为空。无论如何,我可以让查询接受null?

回答

4

解析器内部分配一个数据类型为NULL,它是一个INTEGER。您的列不是数字,因此导致类型不匹配。

为了解决这个根本CAST(NULL AS VARCHAR(..))

+1

另外,我认为这将是一个好主意,明确地投你的字符常量'选择”您要创建的第一个表达式(可能是CHAR(3)在这种情况下)和分配空值时使用相同的数据类型。如果你需要修改代码,这会让你对你更明显。 – BellevueBob