ORA-00979:选择distinct(concat列),而不是按表达式分组



我通过以下查询得到ORA-00979:

SELECT 
DISTINCT ((colA || SUBSTR(colB, 1, 2))) AS colA 
FROM myTable 
WHERE colC='5678'
GROUP BY colA

我有一个名为myTable的表,它有三列(colA、colB和colC(
我希望在我的选择结果中包含:列colA值和列colB的前两个值的串联。此外,我想根据我的结果进行分组。但是,我收到的是ORA-00979,而不是一组表达式错误
如何解决此问题?

您可以重复GROUP BY子句中的整个表达式,因为它出现在SELECT:中

SELECT DISTINCT colA || SUBSTR(colB, 1, 2) AS colA
FROM myTable
WHERE colC = '5678'
GROUP BY colA || SUBSTR(colB, 1, 2);

Oracle不支持使用别名或使用12等位置参数进行分组。请注意,DISTINCT不是SQL函数。

最新更新