Sql 为什么union不能处理语句?
这将产生一个错误:Sql 为什么union不能处理语句?,sql,postgresql,postgresql-9.4,Sql,Postgresql,Postgresql 9.4,这将产生一个错误: with a1 as (select 2), a2 as (select 3) a1 union a2; -- ERROR: syntax error at or near "a1" 但这不会: (select 2) union (select 3); /* ?column? ---------- 2 3 (2 rows) */ 发生了什么事?因为第一个查询的格式不正确,并且有一些语法错误,SELECT语句在哪里?a1和a2应该是什么
with a1 as (select 2), a2 as (select 3)
a1 union a2;
-- ERROR: syntax error at or near "a1"
但这不会:
(select 2) union (select 3);
/*
?column?
----------
2
3
(2 rows)
*/
发生了什么事?因为第一个查询的格式不正确,并且有一些语法错误,
SELECT
语句在哪里?a1和a2
应该是什么
这应该起作用:
with a1 as (select 2), a2 as (select 3)
SELECT * FROM a1
UNION
SELECT * FROM a2;
这通常用于进行复杂的计算,并将其简化。不适用于1联合2
这基本上是创建要使用的派生表,在with
部分之后,查询开始,因此应该将其格式化为正常的select/update/delete
查询,但是a1和a2
将可供使用