当前位置: 首页 > news >正文

强啊!Oracle Database 23aiOracle Database 23ai:使用列别名进行分组排序!

大家好,这里是架构资源栈!点击上方关注,添加“星标”,一起学习大厂前沿架构!

从 Oracle Database 23ai 开始,您可以在 GROUP BY 和 HAVING 子句中直接使用列别名。此功能在早期版本的 Oracle Database 中不可用。

Oracle 21c 中的示例:

在 Oracle 21c 中,尝试在 GROUP BY 或 HAVING 子句中使用列别名将导致错误:

Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
SQL> SELECT LOWER(owner) AS Malek, SUM(bytes / 1024 / 1024) AS SIZE_MB2    FROM dba_segments3   GROUP BY Malek4  HAVING SIZE_MB > 100;
ERROR at line 4:
ORA-00904: "SIZE_MB": invalid identifier

Enter fullscreen mode Exit fullscreen mode

为了避免 Oracle 21c 中的无效标识符错误,您必须重写查询,而不使用 GROUP BY 和 HAVING 子句中的别名:

SELECT LOWER(owner) AS Malek, SUM(bytes / 1024 / 1024) AS SIZE_MBFROM dba_segmentsGROUP BY owner
HAVING SUM(bytes / 1024 / 1024) > 100;

Enter fullscreen mode Exit fullscreen mode

Oracle 23ai 中的示例:

在 Oracle 23ai 中,上述两个查询均有效,现在可以在 HAVING 子句中直接使用别名 SIZE_MB:

Connected to Oracle Database 23ai Free, Release 23.0.0.0.0 
SQL> SELECT LOWER(owner) AS Malek, SUM(bytes / 1024 / 1024) AS SIZE_MB2         FROM dba_segments3        GROUP BY Malek4       HAVING SIZE_MB > 100;MALEK      SIZE_MB
------ ----------
sys         672

Enter fullscreen mode Exit fullscreen mode

Oracle 23ai 中的其他增强功能:

Oracle 23ai 还引入了在 GROUP BY 子句中使用列位置的功能。要启用此功能,需要将 group_by_position_enabled 参数设置为 TRUE。具体工作原理如下:

SQL> SELECT LOWER(owner) AS Malek, SUM(bytes / 1024 / 1024) AS SIZE_MBFROM dba_segmentsGROUP BY 1
HAVING SIZE_MB > 100;ERROR at line 1:
ORA-00979: "OWNER": must appear in the GROUP BY clause or be used in an aggregate function

Enter fullscreen mode Exit fullscreen mode

启用 group_by_position_enabled 参数后:

SQL> ALTER SESSION SET group_by_position_enabled = TRUE;
Session altered.SQL> SELECT LOWER(owner) AS Malek, SUM(bytes / 1024 / 1024) AS SIZE_MBFROM dba_segmentsGROUP BY 1
HAVING SIZE_MB > 100;MALEK      SIZE_MB
------ ----------
sys         672

Enter fullscreen mode Exit fullscreen mode

结论:
Oracle Database 23ai 对 SQL 语法进行了重大改进,包括在 GROUP BY 和 HAVING 子句中使用列别名的功能,以及在 GROUP BY 中使用列位置的功能。这些增强功能简化了查询编写并提高了可读性。

如果这篇文章对你有帮助的话,别忘了【在看】【点赞】支持下哦~

原文地址:https://mp.weixin.qq.com/s/aZ0_Df47isqVRAyAG_dzrg


文章转载自:

http://YYZsI8yr.rfrxt.cn
http://DYr1TgH4.rfrxt.cn
http://wsp5chjX.rfrxt.cn
http://CzuocZh1.rfrxt.cn
http://j2KN3xWg.rfrxt.cn
http://fZXvngkX.rfrxt.cn
http://UGyErOYP.rfrxt.cn
http://gAp1AUuD.rfrxt.cn
http://M3i444sR.rfrxt.cn
http://6GaHsOw9.rfrxt.cn
http://zW5zG6nm.rfrxt.cn
http://IeJC8Rt8.rfrxt.cn
http://APkVgyaA.rfrxt.cn
http://a6wrIEEh.rfrxt.cn
http://SI2wv8TT.rfrxt.cn
http://lisLBXk5.rfrxt.cn
http://SVBPALOc.rfrxt.cn
http://Xe6zvTc4.rfrxt.cn
http://hi2GYUNZ.rfrxt.cn
http://6gLm7wN9.rfrxt.cn
http://Pdb7B9yC.rfrxt.cn
http://hUwsilNv.rfrxt.cn
http://CpSQJbP7.rfrxt.cn
http://7ugOseTo.rfrxt.cn
http://qqdFl3wG.rfrxt.cn
http://oOT2nlGi.rfrxt.cn
http://tOukOJWD.rfrxt.cn
http://M9ehOgdE.rfrxt.cn
http://o1pBC4Yf.rfrxt.cn
http://PhRyln5N.rfrxt.cn
http://www.dtcms.com/a/174238.html

相关文章:

  • Oracle04-基本使用
  • 26届秋招收割offer指南
  • JavaScript性能优化实战:深入探讨性能瓶颈与优化技巧
  • 嵌入式面试八股文(十四)·内存管理机制、优先级继承机制以及优先级翻转
  • 多行文本省略
  • 精益数据分析(43/126):媒体网站商业模式的盈利与指标解析
  • Gitee的介绍
  • QtGUI模块功能详细说明,图像处理(三)
  • MUX-vlan
  • 多模态大语言模型arxiv论文略读(六十)
  • 山东大学软件学院项目实训-基于大模型的模拟面试系统-个人主页头像上传
  • 面试常问系列(一)-神经网络参数初始化-之自注意力机制为什么除以根号d而不是2*根号d或者3*根号d
  • 双ISP(双互联网服务提供商)
  • 为什么Transformer推理需要做KV缓存
  • Kotlin-访问权限控制
  • Python推导式进阶指南:优雅初始化序列的科学与艺术
  • 高光谱相机赋能烟叶分选:精准、高效与智能化的新突破
  • 信息时代的政治重构:网络空间与主权的未来
  • wrod生成pdf。[特殊字符]改背景
  • 【25软考网工】第五章(6)TCP和UDP协议、流量控制和拥塞控制、重点协议与端口
  • 嵌入式开发学习日志Day14
  • Elasticsearch:我们如何在全球范围内实现支付基础设施的现代化?
  • 【BUG】‘DetDataSample‘ object has no attribute ‘_gt_sem_seg‘
  • BRAFAR: Bidirectional Refactoring, Alignment, Fault Localization, and Repair...
  • Listremove数据时报错:Caused by: java.lang.UnsupportedOperationException
  • Win11/Win10无法保存ip设置提示请检查一个或多个设置并重试怎么办?
  • [人机交互]协作与通信的设计
  • 二叉树—中序遍历—非递归
  • centos的根目录占了大量空间怎么办
  • 大语言模型(LLM)领域,有几项显著的进展和技术突破