【发布时间】:2020-10-19 21:49:44
【问题描述】:
我正在处理分层数据,其中计划 (PGM) 和公立学校 (PUB) 属于学区 (DIS)。我需要查看一个 District 的所有子记录,因此我尝试使用 where 子句,其中我说子记录的类别应该是 'DIS'、'PUB' 或 'PGM'。
但是,我在此处尝试使用的代码不起作用 - 一旦我在第一个 WHEN 子句中列出多个值,我就会收到 ORA-00907:缺少右括号错误消息。
我怎样才能重写它,以便它允许我选择与多个可能值之一匹配的记录?
WHERE o.cat IN
CASE (SELECT CAT from ads_organizations where org_id = :CUR_ORGID)
WHEN 'DIS' THEN ('DIS', 'PUB', 'PGM')
WHEN 'PUB' THEN ('PUB')
WHEN 'PRI' THEN ('PRI')
END
【问题讨论】:
标签: sql oracle subquery case where-clause