`
hecal
  • 浏览: 80057 次
社区版块
存档分类
最新评论

关于SQL中的Update语句

 
阅读更多

今天在SQL数据库操作时需要将一张表中的数据Update到另一张表中去, 可是用我以往的写法确怎么也不能成功.代码如下:

update table1 a

set a.Col1=b.Col2

from table2 b

where a.c=b.c

上面的写法似乎是在Oracle的环境下可以实现的, (具体没有验证过) 反正在SQL Server中是无法执行. 上网找了一下终于找到了解决方法, 如下:

Oralce和DB2都支持的语法:
UPDATEA SET(A1,A2,A3)=(SELECTB1,B2,B3FROMBWHEREA.ID=B.ID)
MS SQL Server不支持这样的语法,相对应的写法为:
UPDATEA SETA1=B1,A2=B2,A3=B3 FROMALEFTJOINBONA.ID=B.ID
个人感觉MS SQL Server的Update语法功能更为强大。MS SQL SERVER的写法:
UPDATEA SETA1=B1,A2=B2, A3 = B3 FROMA,BWHEREA.ID=B.ID
在Oracle和DB2中的写法就比较麻烦了,如下:
UPDATEA SET(A1,A2,A3)=(SELECTB1,B2,B3FROMBWHEREA.ID=B.ID) WHEREIDIN(SELECTB.IDFROMBWHEREA.ID=B.ID)

======================<转载>==================================

UPDATE M_MG_TORIKUZUSHI_PPC_DETAIL TPPC_DETAIL SET (MG_HF, MG_TF, MG_PF, MG_AF, MG_LF, MG_OTHERS) = (SELECT SUM(NVL(MG_HF,0)) AS TOTAL_HF, SUM(NVL(MG_TF,0)) AS TOTAL_TF, SUM(NVL(MG_PF,0)) AS TOTAL_PF, SUM(NVL(MG_AF,0)) AS TOTAL_AF, SUM(NVL(MG_LF,0)) AS TOTAL_LF, SUM(NVL(MG_OTHERS,0)) AS TOTAL_MG_OTHERS FROM M_MG_TORIKUZUSHI_SYUUKEI TORIKUZUSI WHERE TPPC_DETAIL.TORIKUZUSHI_PPC = TORIKUZUSI.TORIKUZUSHI_PPC AND TPPC_DETAIL.SINSEI_YYYY_MM = TORIKUZUSI.SINSEI_YYYY_MM AND TORIKUZUSI.TORIKUZUSHI_PPC IN('167545562') AND TORIKUZUSI.SINSEI_YYYY_MM <=200705)

======================<原创>==================================

分享到:
评论

相关推荐

    insert,update导出sql语句

    在数据库管理中,INSERT和UPDATE语句是两个非常基础且重要的操作。它们分别用于向数据库中插入新的数据和更新已存在的数据。这篇内容将详细解释这两个SQL语句的工作原理、用法以及如何导出这些语句,以供日后使用或...

    SQL Server UPDATE语句的用法详解

    在SQL Server数据库中要想修改数据库记录,就需要用UPDATE语句,UPDATE语句就是为了改变数据库中的现存数据而存在的。这条语句虽然有一些复杂的选项,但确实是最容易学习的语句之一。这是因为在大多数情况下,这条...

    生成UPDATE语句

    4. **主键在UPDATE语句中的作用** ### Oracle UPDATE 语句的生成逻辑 在Oracle数据库中,`UPDATE`语句用于修改现有行的数据。一个基本的`UPDATE`语句包含两个主要部分:`SET`子句用于指定要修改的列及新值,`WHERE...

    根据update语句自动生成select语句

    转换方法与上述相同,但Informix提供了`-d`选项来运行SQL命令并显示将要执行的更新操作,这可以帮助我们理解UPDATE语句的影响: ```bash informixdb -d database_name -c "UPDATE Employees SET Salary = Salary * ...

    PB脚本中SQL语句写法与SQL中语句写法对照

    在SQL语言中,可以使用Update表名Set字段名=case字段名when值1then值2else值三endFrom表名Where条件语句来实现条件语句的写法。 四、取余函数Mod() 在PB脚本中,可以使用Mod(要取余数的值,取余值)函数来实现取余数...

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

    在 UPDATE 语句中,也可以使用 OPTION 子句指定查询提示,例如 OPTION (HASH JOIN),这样可以提高 UPDATE 语句的执行效率。 UPDATE 语句还可以使用 WITH 语句指定表提示,例如 WITH (INDEX (index_val)),这样可以...

    update语句

    标题中的“update语句”指的是在数据库管理中用于修改现有数据的SQL命令。在数据库操作中,`UPDATE`语句是不可或缺的一部分,它允许我们更改表中的特定行或所有行的数据。下面将详细介绍`UPDATE`语句的工作原理、...

    sql的update语句功能非常强大.docx

    SQL的UPDATE语句是用于修改现有数据表中记录的关键操作。在SQL中,UPDATE语句的功能非常强大,能够对指定的表、视图或者行集函数中的数据进行修改。下面将详细解析UPDATE语句的结构和参数,以及如何使用它来执行各种...

    Delphi通过update语句修改数据库内容..rar

    4. 如果SQL语句中有参数,如上述示例中的`:NewValue`,需要设置对应的TADParameter。在TADOCommand的Parameters集合中添加一个新的参数,设置其Name和Value属性。 5. 调用TADOCommand的Execute方法来执行UPDATE语句...

    sql语句万能生成器,sql语句,sql语句生成

    SQL语句是数据库操作的核心,它用于查询、插入、更新和删除数据,是任何数据库管理系统中的基础工具。在IT行业中,编写SQL语句是一项必备技能,但手动编写和调试SQL语句可能会耗费大量时间和精力,尤其在处理复杂...

    使用SQL语句批量更新数据.rar

    1. UPDATE语句:批量更新的基础是SQL的UPDATE语句。基本语法如下: ```sql UPDATE 表名 SET 列名 = 新值 WHERE 更新条件; ``` 这里的表名是你需要更新的表,列名是你要修改的字段,新值是新的数据,而WHERE子句定义...

    VB 利用UPDATE语句批量更新数据表中的数据

    在上述SQL语句中添加WHERE子句即可: ```vb sql = "UPDATE Employees SET Salary = Salary * 1.1 WHERE DepartmentID = 'IT'" ``` 这样,只有IT部门的员工工资会被增加10%。 请注意,批量更新时务必小心,尤其是当...

    sql语句生成工具,insert,update

    UPDATE语句用于修改数据库表中已存在的记录。基本语法如下: ``` UPDATE 表名 SET 字段1 = 新值1, 字段2 = 新值2, ... [WHERE 条件] ``` 生成工具通常会要求用户选择要更新的表,设置要更改的字段及其新值,并...

    SQL基本语句 SQL基本语句

    UPDATE语句用于修改现有记录。比如,要更新John Smith的薪水,可以写: ```sql UPDATE EMPLOYEES SET SALARY = 50000 WHERE FIRST_NAME = 'John' AND LAST_NAME = 'Smith'; ``` 这将把所有名为John Smith的员工的...

    update语句的优化-oracle .pdf

    在本篇文档中,作者详细总结了在实际项目中针对Oracle数据库的update语句优化的四种方案。以下是对这四种方案的知识点进行详细的阐述: 1. 标准update语法优化: 当面对单表更新或较简单的SQL语句时,可以直接使用...

    SQLServer添加UPDATE回滚日志.doc

    在数据没有备份的情况下,它可以对数据进行恢复,无论是update/insert/delete都可以进行回滚操作,有demo做介绍,

    ORACLE多表关联的update语句

    在Oracle数据库中,多表关联的UPDATE语句用于更新一个表中的数据,这些数据依赖于另一个或多个表的记录。这种操作在数据整合、错误修正或者数据同步时非常常见。以下我们将详细探讨如何使用不同方式执行多表关联的...

    ORACLE_多表关联_UPDATE_语句

    Oracle数据库中的多表关联UPDATE语句是用于在一个表中更新数据时,依据另一个表的条件进行操作的关键技术。这在处理复杂的数据同步或修正场景时非常有用。在本例中,我们将探讨如何利用多表关联来更新数据,并通过...

    在Delphi中更新数据库UPDATE语句使用示例..rar

    在Delphi中,可以通过在SQL语句中使用参数占位符(如`?`),然后在TADOCommand的Parameters集合中添加对应的TParameter对象。例如: ```delphi Cmd.CommandText := 'UPDATE Employees SET Salary = :NewSalary ...

Global site tag (gtag.js) - Google Analytics