ORA-00979: select distinct(concat 列)不是按表达式分组
ORA-00979 : select distinct(concat column) not a group by expression
我通过以下查询得到 ORA-00979:
SELECT
DISTINCT ((colA || SUBSTR(colB, 1, 2))) AS colA
FROM myTable
WHERE colC='5678'
GROUP BY colA
我有一个名为 myTable 的 table,它具有三列(colA、colB 和 colC)。
我想在我的 select 结果中包含:列 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 不支持使用别名或使用 1
、2
等位置参数进行分组。并注意 DISTINCT
不是 SQL 函数。
我通过以下查询得到 ORA-00979:
SELECT
DISTINCT ((colA || SUBSTR(colB, 1, 2))) AS colA
FROM myTable
WHERE colC='5678'
GROUP BY colA
我有一个名为 myTable 的 table,它具有三列(colA、colB 和 colC)。
我想在我的 select 结果中包含:列 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 不支持使用别名或使用 1
、2
等位置参数进行分组。并注意 DISTINCT
不是 SQL 函数。