`
bestxiaok
  • 浏览: 452455 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

update多列更新

阅读更多
再ETL的时候,经常会遇到列转换的问题,再对照转换中出现多列更新的时候,一下是我总结的一些:
当update多列时有如下几种选择
1.)教科书式写法

update t_table a

    set f1=(select f1 from testz b where a.id=b.id),

           f2=(select f2 from testz b where a.id=b.id),

           f3=(select f3 from testz b where a.id=b.id)

    where id=2;
2.)教科书变种

update t_table a

    set (f1,f2,f3)=(select f1,f2,f3 from testz b where a.id=b.id)

    where id=2;

虽然道理和方法1一样,却省了不少事

3.)另类nest table写法

update (select f1,f2,f3 from t_table where id=2)

    set (f1,f2,f3)=(select f1,f2,f3 from testz b where id=2);

此方法虽然比2的代码量要多一些,但是没有表连接,如果两个表都在id列有主键,速度应该较方法1和方法2快一些.

说明:update是一个耗回滚段,耗重做日志,耗时间,耗成本的操作,尤其是大表的多列update,如有必要应比较其与重新建表的效率.
0
0
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    SQL UPDATE 更新语句用法(单列与多列)

    本文将详细介绍如何使用UPDATE语句来更新单列和多列的数据。 首先,UPDATE语句的基本语法如下: ```sql UPDATE 表名称 SET 列名称 = 新值 WHERE 条件; ``` 这里,`表名称`是你想要更新的表的名称,`列名称`是你要...

    实现 DataTable按条件进行更新(类似sql的update)

    本篇文章将详细讲解如何使用C#来实现类似于SQL的`UPDATE`语句,对DataTable中的数据进行条件性更新。 首先,我们需要了解DataTable的基本结构。DataTable通常包含多个DataRow,每个DataRow代表表中的一行记录。每一...

    SQLITE数据库 UPDATE慢

    1. **索引缺失**:在执行UPDATE操作时,如果更新的列没有索引,数据库需要全表扫描来找到匹配的行,这在数据量大的情况下会非常慢。解决方案是为经常用于WHERE子句中的列创建索引,以提高查找效率。 2. **大数据量*...

    update语句

    你可以同时更新多个列,每个列名后面都跟着等号和新值。 3. **新值**:新值可以是常量、表达式或查询结果,只要它们符合列的数据类型。 4. **WHERE**:这是可选但非常重要的部分,用于指定哪些行应该被更新。如果不...

    LabVIEW多列列表框上色隔行变色.rar

    在LabVIEW编程中,多列列表框是一种常用的用户界面组件,用于显示多行多列的数据。这个"LabVIEW多列列表框上色隔行变色.rar"文件可能包含了一个示例或教程,教你如何实现多列列表框的行颜色交替,以提高数据可读性和...

    oracle的update的五种方式

    标准 Update 语句是 Oracle 中最基本的更新语句,语法为:`UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值`。例如:`UPDATE t_join_situation SET join_state='1' WHERE year='2011'`。这种方式适用于更新...

    PB并发控制与Row changed between retrieve and update详解

    在处理 Row changed between retrieve and update 错误时,需要查看在更新之前有没有 update、Delete 的 SQL 语句,如果有,那么也可能对数据窗口的更新造成影响。 PB 的并发控制机制可以通过数据窗口的更新属性...

    数据库oracle for update of和for update的区别

    - 当涉及到多表联接时,`FOR UPDATE OF`可以更加灵活地控制锁定的列: ```sql SELECT * FROM Table1 a JOIN Table2 b ON a.pkid = b.pkid FOR UPDATE OF a.pkid; ``` 这条语句仅锁定`Table1`中的`pkid`列,`...

    用一条SQL语句将数据表中某列更新到另一个数据表里

    这种方法的优势在于可以一次性处理所有匹配项,而无需多次执行更新操作。在Oracle 10g及更高版本中,可以使用如下的SQL语句: ```sql UPDATE T1 SET A2 = ( SELECT A22 FROM T2 WHERE T1.A1 = T2.A11 ) WHERE ...

    程序更新 update

    10. **更新日志**:程序更新通常会附带更新日志,列出新特性、改进和已知问题,供开发者和用户参考。 在"UPDATE"这个文件中,可能包含了上述部分或全部功能的实现。通过深入研究这个源码,开发者可以学习如何构建...

    多列拖拽排序智能滚动

    "多列拖拽排序智能滚动"是一种提升用户体验的技术,它允许用户通过拖放操作对多列数据进行排序,同时在拖动过程中,如果接近屏幕边缘,页面会自动滚动,确保用户能持续看到可操作区域。这个功能的实现主要依赖于...

    MySQL数据库中group by语句与update语句的用法研究.pdf

    * 可以按照一列进行分组,也可以按照多列进行分组。 * 在使用 group by 子句时,select 子句中的任意一列要么包含在聚合函数中,要么必须在 group by 子句中出现过。 例如,从 teacher 表中查询各个系男、女教师的...

    update.zip

    比如,它可能包含一个名为“MANIFEST.MF”的文件,列出了zip文件中的所有条目及其属性,以及“UPDATE-SIG.PK7”或“UPDATE-SIG.PK8”签名文件,用于验证更新文件的完整性和安全性。此外,还有一个名为“RECOVERY.RSF...

    SQL update 多表关联更新的实现代码

    在这个语句中,我们使用了传统的JOIN语法,通过在 `FROM` 子句中同时列出A表和B表,并在 `WHERE` 子句中指定关联条件 `A.c1 = B.c1` 来实现多表更新。这种方式在一些较旧的SQL方言中是有效的,例如在某些版本的SQL ...

    SQL UPDATE ACCESS

    3. **多字段更新**:在描述中提到的“多个字段内容实例”,意味着一次更新可能涉及表中的多个字段。例如,你可能需要同时更新用户的姓名和邮箱地址: ```sql UPDATE 用户表 SET 姓名 = '张三', 邮箱 = 'zhangsan@...

    ORACLE_UPDATE_语句语法与性能分析

    请注意,使用子查询更新多个列时,如果子查询返回多行,UPDATE语句会抛出错误。在上述示例中,由于每个`customer_id`在tmp_cust_city表中只有一个对应的记录,所以不会发生这种情况。然而,为了确保安全,最好在实践...

    用数据窗口实现多表更新示例pb9

    所以当修改它的数据项时,我们不能简单地用dw_1.update()来更新table,我们可以在程序中设置数据窗口可更新的一个表A(及其可更新列),其他表为不可更新,更新完表A后,再设置另一表B为可更新,表A设置为不可更新,...

    sql的update语句功能非常强大[参考].pdf

    UPDATE 语句可以更新单个表或视图中的数据,也可以更新多个表或视图中的数据。 UPDATE 语句的基本语法结构如下: UPDATE { table_name | view_name | rowset_function_limited } SET { column_name = { expression...

    s_update_tool

    Sublime Text支持各种编程语言,并且拥有强大的自定义能力,用户可以通过安装各种插件来扩展其功能,如代码高亮、代码折叠、多列编辑等。这些插件大多数可以从Package Control获取,这是一个方便的包管理器,允许...

    rfc3311_sip_UPDATE.txt

    这使得`UPDATE`方法非常适合在早期对话中更新会话参数。 #### 术语 - **SIP**: 会话发起协议,一种用于控制多媒体通信会话的应用层协议。 - **INVITE**: SIP 中用于发起或修改会话的方法。 - **对话(Dialog)**: ...

Global site tag (gtag.js) - Google Analytics