oracle 数据库 sql 问题

问题描述

oracle 数据库 sql 问题

select
pdept, deptsort, deptlevel,
省略
from (省略) t
group by cube(pdept, deptsort, deptlevel)
-- having grouping_id(pdept, deptsort, deptlevel) not in(2)------------------------A
1.问题是这样的 查询数据可能有 0 1 2 3 4 5 6 7
2.去掉 A处的注释,not in 不起作用 出来的数据没有被过滤 或者 过滤错误
3.having grouping_id(pdept, deptsort, deptlevel) not in(select 2 from dual) 正确过滤
4.having grouping_id(pdept, deptsort, deptlevel) >2 和 >(select 2 from dual) 也起不了过滤作用
5.版本是10.2.0.1.0 (奇怪的是10.2.0.4.0可以,但是如果把.1版本的数据库导出导入到.4的版本结果导致同样在.4版本数据库里也无效 )

时间: 2024-10-02 19:24:44

oracle 数据库 sql 问题的相关文章

如何保持Oracle数据库SQL性能的稳定性

如何保持Oracle数据库SQL性能的稳定性 >     

oracle数据库sql的优化总结

  自己对oracle sql的一些优化总结,自己也记录下来,也希望对大家有帮助: 一:使用where少使用having; 二:查两张以上表时,把记录少的放在右边; 三:减少对表的访问次数; 四:有where子查询时,子查询放在最前; 五:select语句中尽量避免使用*(执行时会把*依次转换为列名); 六:尽量多的使用commit; 七:Decode可以避免重复扫描相同的记录或重复连接相同的表; 八:通过内部函数也可提高sql效率; 九:连接多个表时,使用别名并把别名前缀于每个字段上; 十:用

ORACLE数据库SQL语句的执行过程

SQL语句在 数据库中处理过程是怎样的呢?执行顺序呢?在回答这个问题前,我们先来回顾一下:在ORACLE数据库系统架构下,SQL语句由用户进程产生,然后传到相 对应的服务端进程,之后由服务器进程执行该SQL语句,如果是SELECT语句,服务器进程还需要将执行结果回传给用户进程. SQL语句的执行过程一般如下: 解析(PARSE)-- 绑定(BIND)--执行(EXECUTE)--提取(FETCH 只有SELECT才需要这步) 解析   服务器进程接收到一个SQL语句时,首先要将其转换成执行这个S

oracle数据库sql的优化总结_oracle

一:使用where少使用having; 二:查两张以上表时,把记录少的放在右边: 三:减少对表的访问次数: 四:有where子查询时,子查询放在最前: 五:select语句中尽量避免使用*(执行时会把*依次转换为列名): 六:尽量多的使用commit: 七:Decode可以避免重复扫描相同的记录或重复连接相同的表: 八:通过内部函数也可提高sql效率: 九:连接多个表时,使用别名并把别名前缀于每个字段上: 十:用exists代替in 十一:not exists代替 not in(not in 字

oracle数据库,SQL查询变慢

问题描述 我有条sql语句如下:select his.history_id,his.modifydate,his.organization_id,point.unitname,his.state,his.servertype from anhuipmc.fee_history a,anhuipmc.fee_history his,anhuipmc.meshPoint_info point where his.organization_id=trim(point.unitCode(+)) and

Oracle数据库 SQL语句块请教

问题描述 本意是想把一条增删改和一条查询的SQL语句写在一个SQL块中,但是不支持declarepIDnumber;beginselectIDintopIDwhereName='aaa';updateTESTsetName='aaa'whereID=pID;select*fromTEST;end; 解决方案 解决方案二:selectIDintopIDwhereName='aaa';这行代码你发现有什么不妥吗??你的ID从哪个表里检索出来,你写了吗?fromtable_name!!!!!!解决方案

Oracle 数据库的备份与恢复

oracle|备份|恢复|数据|数据库 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP).热备份和冷备份.导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一. 导出/导入(Export/Import) 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去. 1. 简单导出数据(Export)和导入数据(Import) Oracle支持三种方式类型的输出: (1).表方式(T方式),将指定表的数据导出. (2

Oracle数据库的备份与还原三种方法

一. 导出/导入(Export/Import)  利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去.   1. 简单导出数据(Export)和导入数据(Import)   Oracle支持三种方式类型的输出:   (1).表方式(T方式),将指定表的数据导出.   (2).用户方式(U方式),将指定用户的所有对象及数据导出.   (3).全库方式(Full方式),瘵数据库中的所有对象导出.   数据导入(Import)的过程是数据导出(

从Oracle数据库到SQL Server数据库主键的迁移

oracle|server|数据|数据库 由于项目需要要将以前Oracle的数据库转化为SQL Server,今天利用SQL Server的DTD进行数据库的迁移,但导入以后发现只导入了表结构和数据,而表的一些主键约束都没导过来,感觉很郁闷,而手头又没有好的迁移工具,如Erwin,所以动手写了个小工具,基本实现了主键的转移,主要代码如下:主要控件:     ADOConnOrcale: TADOConnection;  //连接Oracle    ADOConnSQLServer: TADOCo