我想update wh5sku.stdcube 的数据,如果AND wh5sku.stdcube < wh6sku.stdcube 就把 wh5的更新为wh6的值(也就是取大值)
用这个语句可以搜索出来由900跳
select wh5sku.stdcube,wh6sku.stdcube
from wh5.sku wh5sku, wh6.sku wh6sku
WHERE wh5sku.sku = wh6sku.sku
AND wh5sku.storerkey = wh6sku.storerkey
AND wh6sku.stdcube > wh5sku.stdcube
可是oracle中update不能用from
我试过用exists 和in 可能写法有问题,未成功
失败的例子:
UPDATE wh5.sku
SET stdcube = (select wh6sku.stdcube
from wh6.sku wh6sku,wh5.sku wh5sku
where wh6sku.sku = wh5sku.sku
AND wh6sku.storerkey = wh5sku.storerkey)
--select stdcube from wh5.sku
where exists (select *
from wh5.sku wh5sku, wh6.sku wh6sku
WHERE wh5sku.sku = wh6sku.sku
AND wh5sku.storerkey = wh6sku.storerkey
AND wh6sku.stdcube > wh5sku.stdcube)
怎样写才能实现这个简单的update呢?
tj_angela,我运行后错误提示:ORA-00904:"B"."stdcube":无效的标识符
badkano 的提示:ORA-01427: 单行子查询返回多于一个行
杀·破狼的提示:ORA-00933: SQL 命令未正确结束,指向了left那个字,因为orcale不是这样用外部连接的.
我还在琢磨~~
正确的全部是:
UPDATE wh5.sku a
set a.stdcube=(select b.stdcube from wh6.sku b
where a.sku = b.sku
and a.storerkey=b.storerkey )
where exists
(select *
from wh6.sku b
where b.sku = a.sku
AND b.storerkey = a.storerkey
and a.stdcube < b.stdcube)
关于oracle中的一个update SQL
update wh5sku a set a.stdcube=(select b.stdcube from wh6sku b where a.storerkey=b.storerkey and a.stdcube>b.stdcube)---补充--- 报那个错是因为,返回值多于一个,也就是a.storerkey=b.storerkey and a.stdcube>b.stdcube查出来的东西不对劲,仔细检查你的数据或者你把你表打...
oracle中update时间的用法
在Oracle数据库中,使用`UPDATE`语句结合日期函数来更新时间数据。可以通过设置目标字段等于新的日期或时间表达式来更新记录的时间信息。详细解释:1. UPDATE语句的基本结构:Oracle中的`UPDATE`语句用于修改已存在的记录。其基本结构如下:sql UPDATE 表名 SET 列名 = 新值 WHERE 条件;其中,要更新的列如...
【Oracle】UPDATE语句
UPDATE emp SET job_id=’SAM’, salary=salary*1.2, dept_id=12 WHERE emp_name=’Jack’;要更新远程数据库表,需使用DBLINK。DBLINK允许连接到另一个数据库并在其中执行SQL操作。更新远程表的语法与本地表相似,只需在UPDATE语句中指定DBLINK:UPDATE emp@dblink SET job_id=’SAM’, salary=s...
sql一个update只能修改一行吗?
可以使用 update 选课表 set kecheng = decode(numberId, '33', '编译原理', '44', '数据结构') where numberId in ('33', '44')主要是使用一些函数或者选择块来完成,但不建议这么做,本来是进行两次修改,应该分别进行的
oracle update set 多个字段
Oracle的UPDATE语句可以同时更新多个字段,当你需要在一个查询中处理多个字段时,可以使用子查询和 EXISTS 条件来实现。下面是一个示例,展示了如何在一个复杂的嵌套查询中更新 M_CHARGEPOLE_REAL 表中的数据:sql UPDATE M_CHARGEPOLE_REAL t SET field1 = 新的值1, field2 = 新的值2, ...WHERE...
oracle SQL语句,能不能同时update一个表的几个字段的值?
可以的,大概是这个样子:update 表名 set 字段名1=值1,字段名2=值2,字段名3=值3 where 条件。
oracle数据库update语句?
Oracle数据库中的UPDATE语句的基本格式为:UPDATE 表名称 SET 列名称1 = 新值1, 列名称2 = 新值2, ...WHERE 某些条件;详细解释:1. UPDATE 表名称:这是UPDATE语句的起始部分,指明要更新的表名。确保您拥有对该表的适当访问权限。2. SET 列名称 = 新值:这部分是设置更新后的列的新值。
oracle update 多个字段更新性能
在 Oracle 数据库中,当需要同时更新多个字段时,可以采用以下方法来提高性能:1.使用单条 SQL 语句更新多个字段:通过一条 SQL 语句同时更新多个字段可以减少数据库服务器和客户端之间的通信量,从而提高性能。示例语句如下:UPDATE table_name SET column1=value1,column2=value2,column3=value3 WHERE ...
ORACLE的update和select关联查询
实现思路就是通过两个表的关联字段,之后将结果更新到另外一个表中:sql:update b set a3=(select a3 from a where a.a1=b.b1 and a.a2=b.b2)备注:使用上边语句,不存在b表中的a表数据不会被更新。
oracle中update时间的用法
首先,将日期值转换为Oracle认可的日期格式。在SQL语句中,这可以通过to_date函数完成。该函数接受两个参数,第一个参数是你要转换的日期字符串(如'1980-01-01'),第二个参数是日期的格式(在这个例子中是'yyyy-mm-dd')。所以,正确的更新语句如下:update emp set hiredate=to_date('1980-01-...