[英]UNION works with CTE, but not without?
I'm using PostgreSQL 11.12.我正在使用 PostgreSQL 11.12。
I have this query:我有这个查询:
select first_name, length(first_name)
from db_employee
where length(first_name) =
(select max(length(first_name)) from db_employee)
order by 1
limit 1
union
select first_name, length(first_name)
from db_employee
where length(first_name) =
(select min(length(first_name)) from db_employee)
order by 1
limit 1
To include a LIMIT<\/code> clause per
SELECT<\/code> in a
UNION<\/code> query, you must add parentheses<\/strong> .
要在
UNION<\/code>查询中包含每个
SELECT<\/code>的
LIMIT<\/code>子句,您必须添加括号<\/strong>。
Like:
喜欢:
( -- !
SELECT first_name, length(first_name)
FROM db_employee
WHERE length(first_name) = (SELECT max(length(first_name)) FROM db_employee)
ORDER BY 1
LIMIT 1
) -- !
UNION
( -- !
SELECT first_name, length(first_name)
FROM db_employee
WHERE length(first_name) = (SELECT min(length(first_name)) FROM db_employee)
ORDER BY 1
LIMIT 1
) -- !
just put both the sql parts in separate brackets and keep union outside.只需将两个 sql 部分放在单独的括号中,并将 union 放在外面。
(select first_name, length(first_name)
from db_employee
where length(first_name) =
(select max(length(first_name)) from db_employee)
order by 1
limit 1)
union
(select first_name, length(first_name)
from db_employee
where length(first_name) =
(select min(length(first_name)) from db_employee)
order by 1
limit 1);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.