首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Oracle 19c中按表达式分组

在Oracle 19c中按表达式分组
EN

Stack Overflow用户
提问于 2022-01-26 17:20:49
回答 1查看 305关注 0票数 0

我正在Oracle 19c中安装一个数据库模式,安装脚本已经在Oracle 12中反复使用,没有问题。

我对19c的问题是,当它运行我们的视图脚本时,它会打开一些视图。我们看到的错误不是一个组的表达式。

我们有一些观点,例如,我们有这样的观点:

代码语言:javascript
复制
SELECT name, TRUNC(date) as Day
FROM sometable
GROUP BY name, TRUNC(date)

它将错误指向select,就好像它没有看到字段已经在group表达式中一样。

如前所述,这些查询在Oracle 12中运行良好多年,直到现在才出现问题。

这是19c的一个错误,还是需要应用的东西?

EN

回答 1

Stack Overflow用户

发布于 2022-01-26 21:44:26

19c,你是说?不能复制它。

代码语言:javascript
复制
SQL> select banner from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

您使用的表(这样您就不会说这是罪魁祸首)(显然,date是一个无效的列名;这是为date数据类型保留的)。

代码语言:javascript
复制
SQL> create table sometable as
  2    select 'Little' name, sysdate datum
  3    from dual
  4    connect by level <= 3;

Table created.

查询本身有效吗?是:

代码语言:javascript
复制
SQL> select name, trunc(datum) as day
  2  from sometable
  3  group by name, trunc(datum);

NAME   DAY
------ --------
Little 26.01.22

注意--因为您没有聚合任何东西--您可以使用DISTINCT而不是GROUP BY

代码语言:javascript
复制
SQL> select DISTINCT name, trunc(datum) as day
  2  from sometable;

NAME   DAY
------ --------
Little 26.01.22

我可以创建一个视图吗?是:

代码语言:javascript
复制
SQL> create view v_sometable as
  2  select name, trunc(datum) as day
  3  from sometable
  4  group by name, trunc(datum);

View created.

SQL>

就像我说的,我不能复制它。

请复制/粘贴您自己的SQL*Plus会话(就像我做的那样),这样我们就可以看到您到底做了什么,以及是如何响应的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70867616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档