方法1. 结合具体示例如下
UPDATE T_REPORT_MONTHLOGASLEVEL T
SET T.KEY1 =
(SELECT P.STRU_ORDER
FROM PUB_STRU P
WHERE P.STRU_LEVEL = 2
AND T.LEVEL_2_COMPANY = P.ORGAN_ALIAS)
方法2.结合具体示例如下
MERGE INTO T_REPORT_MONTHLOGASLEVEL T
USING (SELECT P.STRU_ORDER, P.ORGAN_ALIAS
FROM PUB_STRU P
WHERE P.STRU_LEVEL = 2) NP
ON (NP.ORGAN_ALIAS = T.LEVEL_2_COMPANY)
WHEN MATCHED THEN
UPDATE SET T.KEY1 = NP.STRU_ORDER
oracle9i以后新增加的merge into 方法 方法2性能远远优于方法1
merge into 使用方法如下(摘自网上)
语法如下
MERGE INTO [your table-name] [rename your table here]
USING ( [write your query here] )[rename your query-sql and using just like a table]
ON ([conditional expression here] AND [...]...)
WHEN MATHED THEN [here you can execute some update sql or something else ]
WHEN NOT MATHED THEN [execute something else here ! ]
我们先看看一个简单的例子,来介绍一个merge into的用法
merge into products p using newproducts np on (p.product_id = np.product_id)
when matched then
update set p.product_name = np.product_name
when not matched then
insert values(np.product_id, np.product_name, np.category)
相关推荐
这段代码首先使用 `SELECT DISTINCT *` 创建了一个不含重复记录的新表 `table_new`,接着清空原表 `table1`,最后将新表的数据插入到原表中。 #### 3.2 处理复杂重复情况 对于更复杂的重复情况,比如包含多个字段的...
假设我们有一个名为`person`的表,包含`id`和`name`两个字段,其中`id`字段是唯一的,不允许重复。以下是一个简单的查询重复`id`的SQL语句: ```sql SELECT id FROM person GROUP BY id HAVING COUNT(*) > 1; ``` ...
dictionary 全部数据字典表的名称和解释,它有一个同义词dict dict_column 全部数据字典表里字段名称和解释 如果我们想查询跟索引有关的数据字典时,可以用下面这条SQL语句: SQL>select * from dictionary ...
"mysql+orcale表生成实体"的主题涉及到如何将这两种数据库中的表结构映射到编程语言中的对象,通常这个过程称为对象关系映射(ORM)。ORM允许开发人员使用面向对象的方式来处理数据库,提高了开发效率并降低了数据库...
分表则是将一个大表按照某种规则划分为多个小表,存储在同一个数据库中。这种策略主要用于处理单表数据量过大导致的查询性能下降问题。分表方式主要有两种:水平分表(Sharding)和垂直分表(Partitioning)。 1. ...
对于不支持多表删除的数据库系统,例如SQL Server 2008及更早版本,可以采取以下两种方法来实现类似功能: 1. **触发器**:在SQL Server中,可以创建一个触发器,当在一张表中删除某个记录时,触发器会自动执行相应...
select:从一个或多个表中检索一个或多个数据列。包含信息:想选择什么表,从什么地方选择。必须要有From子句。(最常用) 当从多张表里查询的时候,会产生笛卡尔积;可用条件过滤它。 当两个表有相同字段时必须加...
当一个表(子表或从表)的某个字段引用另一个表(主表)的主键字段时,就会设置外键约束。这样,当在子表中插入或更新数据时,必须确保这些值在主表的主键列中存在。 在遇到 ORA-02298 错误时,我们可以采取以下...
两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B: EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时...
好比是一张部门表,在一张表里表现部门的上下级关系,一个是主键,肯定还有一个字段为连接到该主键的外键的列名,这里的 parentColumn 指的就是这个列名。 nullParentValue 如果当前的 Level 是有上下级关系(设置...
索引是一种特殊的文件(InnoDB 数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。一般数据库默认都会为...
- 是一个开放源码的对象关系映射框架,可以将Java类映射到数据库表及其字段上。 **2. Hibernate的工作原理** - Hibernate通过配置文件或注解来定义对象与数据库表之间的映射关系,并提供一系列API来进行数据的增删...
两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B: EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时...
- **子查询**:一个查询作为另一个查询的一部分执行,通常用于更复杂的逻辑处理。 - **绑定变量**:在执行SQL语句时,可以使用绑定变量来代替具体的值,这有助于提高性能并减少SQL注入的风险。 - **数据模型和数据库...