Sql 如何将整数数据类型union的硬编码空白值与整数数据类型列合并

Sql 如何将整数数据类型union的硬编码空白值与整数数据类型列合并,sql,sybase,Sql,Sybase,但我从两个加入工会的查询中得到一个错误,即employee_id的数据类型不兼容。那么如何解决这个问题呢 emp_id是数字数据类型如果需要字符串,请转换为字符串: select id , '' as employee_id from table1 union select id , emp_id as employee_id from table2 通常,您会使用NULL而不是',这与更多类型更兼容: select id , cast('' as varchar(255)) as emplo

但我从两个加入工会的查询中得到一个错误,即employee_id的数据类型不兼容。那么如何解决这个问题呢


emp_id是数字数据类型

如果需要字符串,请转换为字符串:

select id , '' as employee_id from table1
union
select id , emp_id as employee_id from table2
通常,您会使用
NULL
而不是
'
,这与更多类型更兼容:

select id , cast('' as varchar(255)) as employee_id from table1
union all
select id , cast(emp_id as varchar(255) as employee_id from table2;

注意,我将
联合
更改为
联合所有
<代码>联合会产生删除重复项的开销。仅当您希望产生这种开销时才使用它。

联合列必须具有匹配的数据类型。在第一个选择中选择null或0,或在第二个选择中转换为varchar。
select id , NULL as employee_id from table1
union all
select id , emp_id as employee_id from table2;