我正在尝试在两个具有不同列数的表之间执行UNION
。从this question我知道你需要在表上添加额外的空列,列数较少,但这样做会导致以下错误:
Error code -1, SQL state 42X01: Syntax error: Encountered "null" at line 1, column 75.
查询是:
SELECT column1, column2
from APP.lefttable
WHERE column2 = 'value'
union all
select column1, null as column2
from APP.righttable";
我只想在UNION
子句的右侧有一个列,所以我试图将其中一列设为null,但会出现上述错误。
如果有帮助我在使用Apache Derby作为我的RDBMS的Java应用程序中这样做。
答案 0 :(得分:1)
试试这个
SELECT * from
(
SELECT column1, column2 from APP.lefttable WHERE column2 = 'value'
union all
SELECT column1,NULL AS Column2 from APP.righttable
)
答案 1 :(得分:0)
我想知道派生表的column2是否根据union中的第一个查询被定义为NOT NULL。如果您切换查询怎么办:
select column1, null as column2 from APP.righttable"
union all
SELECT column1, column2 from APP.lefttable WHERE column2 = 'value';