在 GROUP BY 中使用 OR

Using OR in a GROUP BY

是否可以在 GROUP BY 中使用 OR。

例如我试过:

GROUP BY a.id (b.id OR a.id2)

但这给出了一个错误

ORA-00907: missing right parenthesis

你的问题没有道理。但是,如果第一个值可以是 NULL:

,您可以使用 coalesce()
GROUP BY a.id, coalesce(b.id, a.id2)

如果这些是标志(采用诸如 0 或 1 之类的值),则 or 与以下内容相同:

GROUP BY a.id, (1 - b.id) * (1 - a.id2)

但是,"id" 是一个称为标志的字段的不寻常名称。