在GROUP BY中使用OR

Mat*_*att 0 sql oracle oracle-sqldeveloper

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

例如我试过:

GROUP BY a.id (b.id OR a.id2)
Run Code Online (Sandbox Code Playgroud)

但这会产生错误

ORA-00907:缺少右括号

Gor*_*off 5

你的问题没有意义.但是,coalesce()如果第一个值可能是NULL:

GROUP BY a.id, coalesce(b.id, a.id2)
Run Code Online (Sandbox Code Playgroud)

如果这些是标志(取值为0或1),则or与以下内容相同:

GROUP BY a.id, (1 - b.id) * (1 - a.id2)
Run Code Online (Sandbox Code Playgroud)

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