update a set a.fields1=(select 'a' from b where a.fields2=b.fields2 and b.fields1='a') where exists (select 1 from b where a.fields2=b.fields2 and b.fields1='a');
对不起,myheaven2000(),你的回答和我叙述的那种“不行”的方式有区别吗? Sql Server 里,多个表是写成 [FROM {table_name | view_name}[,...]] 这种形式的。Oracle 里这种方式不行。
bzszp(SongZip) ,看来我的描述不确切 我修改我的举例在sql server 下的语句如下update a set a.fields1=b.fields1 from a,b where a.fields2=b.fields2 and b.fields3='3'在Oracle里如何实现?
update a set a.fields1=b.fields1 where exists( select * from b where a.fields2=b.fields2 and b.fields3='3')
我以前也遇到过类似问题,SqlServer中能用,Oracle中不能用,后来改为如下语句才好了。 update a set a.fields1='a' where exists(select a.fields1 from b where a.fields2=b.fields2 and b.fields1='a')
初学 ORACLE 有很多地方不明白,请教个问题: TableA 表的字段: Num Number(5),Name VarChar(20)TableB 表的字段: Num Number(5),Name VarChar(20),IsOld Number(1) Default 0用 SQL 2000 的描述方法是: Update B set B.Name = A.Name,B.IsOld = 0 from TableA A,TableB B where A.Num = B.Num and B.IsOld = 1; 在 ORACLE 中怎实现?
set a.fields1=(select 'a'
from b
where a.fields2=b.fields2 and b.fields1='a')
where exists (select 1 from b where a.fields2=b.fields2 and b.fields1='a');
对不起,myheaven2000(),你的回答和我叙述的那种“不行”的方式有区别吗? Sql Server 里,多个表是写成 [FROM {table_name | view_name}[,...]] 这种形式的。Oracle 里这种方式不行。
set a.fields1=b.fields1
from a,b
where a.fields2=b.fields2 and b.fields3='3'在Oracle里如何实现?
set a.fields1=b.fields1
where exists( select * from b where a.fields2=b.fields2 and b.fields3='3')
update a
set a.fields1='a'
where exists(select a.fields1
from b
where a.fields2=b.fields2 and b.fields1='a')
TableA 表的字段: Num Number(5),Name VarChar(20)TableB 表的字段: Num Number(5),Name VarChar(20),IsOld Number(1) Default 0用 SQL 2000 的描述方法是:
Update B
set B.Name = A.Name,B.IsOld = 0
from TableA A,TableB B
where A.Num = B.Num and B.IsOld = 1;
在 ORACLE 中怎实现?