1

我通过以下查询得到 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而不是按表达式分组的错误。
我该如何解决这个问题?

4

1 回答 1

0

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 不支持使用别名或使用1,2等位置参数进行分组。请注意,这DISTINCT不是 SQL 函数。

于 2022-02-08T09:00:43.620 回答