[英]UNION works with CTE, but not without?
我正在使用 PostgreSQL 11.12。
我有这个查询:
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
要在
UNION<\/code>查询中包含每个
SELECT<\/code>的
LIMIT<\/code>子句,您必须添加括号<\/strong>。
喜欢:
( -- !
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
) -- !
只需将两个 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.