在 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" 是一个称为标志的字段的不寻常名称。
是否可以在 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" 是一个称为标志的字段的不寻常名称。