oracle中的Grouping_ID语法错误与函数

时间:2015-04-16 11:10:08

标签: oracle sqlplus

有人可以通过以下语法指出我的错误。

这很好。

SELECT col1,col2,grouping_id(col1)col3,substr(col2,1,5)col4
FROM tab1
GROUP BY col1, col2,col3,col4
HAVING GROUPING_ID(col1)<=5 order by 1,2,3,4;

这不是:

SELECT col1,col2,grouping_id(col1)col3,substr(col2,1,5)col4
FROM tab1
GROUP BY col1, col2,col3,col4
HAVING GROUPING_ID(col1,substr(col2,1,2))<=5 order by 1,2,3,4;

如何在oracle的grouping_id中使用函数?

错误消息:ORA-00979:不是GROUP BY表达式

1 个答案:

答案 0 :(得分:1)

substr(col2,1,2)不是按表达式分组,而是substr(col2,1,5)。 您应该在SELECT

中添加substr(col2,1,2)预测substr(col2,1,2)或将substr(col2,1,5)替换为GROUP BY