0 0

ORACLE更新语句。0

有一个oracle更新语句是这样的:
UPDATE SH_INTERNAL_SUB_DEPT DP SET DP.UNCONFORM_COUNT = (SELECT COUNT(*)
FROM SH_INTERNAL_SUB_STANDARD SD WHERE SD.INTERNAL_GROUP_ID = 28 
AND SD.CONFORM_FLAG =1 
)
WHERE DP.DEPT_ID = (SELECT TM.AUDIT_DEPARTMENT_ID FROM SH_INTERNAL_SUB_TEAM TM 
WHERE TM.INTERNAL_GROUP_ID = 28) 
AND DP.INTERNAL_PLA(SELECT TM.INTERNAL_PLAN_ID FROM SH_INTERNAL_SUB_TEAM TM 
WHERE TM.INTERNAL_GROUP_ID = 28 )

请问一下,该怎么优化一下,去掉这么多的子查询语句。
2013年7月05日 15:31

4个答案 按时间排序 按投票排序

0 0

UPDATE SH_INTERNAL_SUB_DEPT DP,SH_INTERNAL_SUB_TEAM TM

SET DP.UNCONFORM_COUNT = (
SELECT COUNT(1)

FROM SH_INTERNAL_SUB_STANDARD SD
WHERE SD.INTERNAL_GROUP_ID = 28  
AND SD.CONFORM_FLAG =1  
    ) 
    WHERE DP.DEPT_ID = TM.AUDIT_DEPARTMENT_ID
AND TM.INTERNAL_GROUP_ID = 28

2013年7月05日 16:54
0 0

你少写了一个等号吧。
UPDATE SH_INTERNAL_SUB_DEPT DP
SET DP.UNCONFORM_COUNT
= (
   SELECT COUNT(*)  

   FROM SH_INTERNAL_SUB_STANDARD SD

   WHERE SD.INTERNAL_GROUP_ID = 28
  
   AND SD.CONFORM_FLAG =1   
  )  
WHERE EXISTS(
SELECT 1 FROM SH_INTERNAL_SUB_TEAM TM
WHERE TM.INTERNAL_GROUP_ID = 28
AND DP.DEPT_ID = TM.AUDIT_DEPARTMENT_ID
AND DP.INTERNAL_PLA = TM.INTERNAL_PLAN_ID
)
;

2013年7月05日 16:05
0 0

AND DP.INTERNAL_PLA(SELECT TM.INTERNAL_PLAN_ID FROM SH_INTERNAL_SUB_TEAM TM   
WHERE TM.INTERNAL_GROUP_ID = 28 )这句少个'='或者'IN'吧。
单从语句上很难优化了,如果数据量很大的话,可以拆分写个过程。

2013年7月05日 16:01
0 0

你这SQL更新能正确?

2013年7月05日 15:36

相关推荐

    Oracle更新语句.txt

    根据提供的文件信息,我们可以深入探讨Oracle数据库中的更新(UPDATE)语句的相关知识点。在数据库管理中,更新操作是一项非常基础且重要的功能,它允许用户修改已存在的数据记录。接下来,我们将详细讨论Oracle更新...

    Oracle Sql语句转换成Mysql Sql语句

    本项目提供了一个Java源码工具,能够帮助用户便捷地将Oracle SQL语句转换为MySQL SQL语句。 Oracle SQL与MySQL SQL的主要差异在于以下几个方面: 1. **数据类型**:Oracle支持的数据类型如NUMBER、LONG、RAW等在...

    excel2003 生成oracle 建表语句

    标题"excel2003 生成oracle 建表语句"涉及到一个实用工具,它允许用户利用Microsoft Excel 2003来创建Oracle数据库的建表语句。这个工具基于Excel的宏功能,使得非编程背景的用户也能相对轻松地生成SQL脚本,这对于...

    oracle解锁语句.txt

    oracle解锁语句,常用解锁语句,经过测试实用;oracle解锁语句,常用解锁语句,经过测试实用。

    Oracle数据库语句大全.doc

    数据操纵语言(DML)用于操作数据库中的数据,包括插入、删除、更新和查询数据的语句。Oracle 数据库支持多种数据类型,包括字符型、数值型、日期型等。 字符型包括: * CHAR:1-2000 字节的定长字符 * VARCHAR2:...

    Oracle sql语句大全

    Oracle sql语句大全. sql语句的优化资料

    常用oracle查询语句

    Oracle 常用查询语句 本文总结了十个常用的 Oracle 查询语句,涵盖了查看表空间、回滚段、控制文件、日志文件、表空间使用情况、数据库对象、数据库版本、数据库创建日期、归档方式、长时间运行的 SQL 语句和数据表...

    oracle Sql语句二

    oracle Sql语句二 oracle Sql语句二

    Oracle数据库语句精选大全.doc

    Oracle数据库语句精选大全

    Oracle查询语句大全-精华版

    update 语句用于更新数据,使用以下语句: update tablename set columnname='新值'; delete 语句用于删除数据,使用以下语句: delete from tablename; 六、查询当前用户下的所有表 查询当前用户下的所有表是...

    oracle sql语句学习

    Oracle SQL语句是数据库管理与数据查询的重要工具,尤其在Oracle数据库系统中,掌握SQL的高效使用至关重要。这个"oracle sql语句学习"资源包显然旨在帮助初学者逐步提升到高级水平,通过全面的笔记资料,使用户能够...

    oracle查询死锁语句

    oracle查询死锁语句,并能根据根据ID值杀死锁表的进程!

    oracle case语句的介绍

    ### Oracle CASE 语句介绍及应用案例 #### 一、Oracle CASE 语句概述 在 Oracle 数据库中,CASE 语句是一种非常实用且灵活的条件判断表达式,它可以用于根据不同的条件返回不同的值。CASE 语句可以分为两种类型:...

    oracle到mysql建表语句迁移

    oracle向mysql建表语句的迁移。 直接表结构的生成sql脚本

    Oracle常用语句-总结文档汇总

    "Oracle常用语句-总结文档汇总"提供了丰富的资源,涵盖了SQL语句的基础到进阶应用,包括列行转换、SQL性能优化等多个关键知识点。 首先,列行转换是数据处理中常见的需求,Oracle提供了多种方法来实现这一操作。...

    Oracle SQL语句性能优化

    Oracle SQL语句性能优化是数据库管理中的关键环节,直接影响到系统的响应速度和资源利用效率。本文将详细探讨优化Oracle SQL语句的几个核心策略。 1. 选择合适的优化器 Oracle 提供了三种优化器:RULE(基于规则)...

    OraTracer oracle 抓取 oracle 执行 语句

    抓取oracle等数据库执行语句工具, 将客户端调用oracle的执行语句都明明白白地进行列出,很好用 如果是xp的操作系统,建议下载另一个资源SQLMonitor,因为展示的更明了,(SQLMonitor在win7及2003可能用不了) ...

    Oracle导出INSERT语句

    在数据库管理中,有时我们需要将数据从一个环境迁移到另一个环境,或者备份某些表的数据,这时“Oracle导出INSERT语句”的工具就显得非常实用。 这个小工具的核心功能是将Oracle数据库中的数据转换为一系列的INSERT...

    ORACLE常用SQL语句大全.pdf

    Oracle 常用 SQL 语句大全 本文档总结了 Oracle 中常用的 SQL 语句,包括数据库的创建、删除、备份、表的创建、删除、修改、索引的创建、视图的创建等基本操作,以及一些高级查询运算符的使用。 一、数据库操作 ...

Global site tag (gtag.js) - Google Analytics