我有一个可以在 MySQL 上运行的 Oracle SQL,但是当我在 Oracle 上运行时,我得到了“缺少右括号”的信息。
我把它放在sqlfiddle上
最佳答案
Oracle 没有像 MySQL 那样使用 CASE
或 if 的简写方式。因此,您必须在 sum
中使用 CASE
:
select p.id, p.name,
t.id as toyid,
t.name as toyname
from person p
inner join toys t on p.id = t.person_id
inner join
(
select person_id
from toys
group by person_id
having sum(case when name = 'hat' then 1 else 0 end) > 0 and
sum(case when name = 'doll' then 1 else 0 end) > 0
) t2
on p.id = t2.person_id;
关于sql - Oracle SQL Sum 缺少右括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16308261/