表A如下:
COLUMN1 COLUMN2
n1 desc1
n1 null
n2 desc2
n3 desc3
n3 null
现在想根据COLUMN1中的值用COLUMN2中非空的更新是null的值,语句如下:update A SET A.COLUMN2=B.COLUMN2 FROM (SELECT * FROM A WHERE COLUMN2 IS NOT NULL) B WHERE A.COLUMN1=B.COLUMN1 AND A.COLUMN2 IS NULL
运行后提示ORA-00933: SQL 命令未正确结束,请各位高手看看是哪里错了,该怎么修改,谢谢!
COLUMN1 COLUMN2
n1 desc1
n1 null
n2 desc2
n3 desc3
n3 null
现在想根据COLUMN1中的值用COLUMN2中非空的更新是null的值,语句如下:update A SET A.COLUMN2=B.COLUMN2 FROM (SELECT * FROM A WHERE COLUMN2 IS NOT NULL) B WHERE A.COLUMN1=B.COLUMN1 AND A.COLUMN2 IS NULL
运行后提示ORA-00933: SQL 命令未正确结束,请各位高手看看是哪里错了,该怎么修改,谢谢!
解决方案 »
- 求一个学生统计的SQL
- 在WindowsXP下安装Oracle 10.2.0数据库应该注意什么事项?
- 这样的sql怎么写啊?
- 请问大家这个sql语句怎么写呢
- 【急:已经年,月,日的字符串,什么函数将它们合成为一个日期(在线等待,急)】
- 高分求助查询问题
- 请问create table 返回值为2 是什么意思?
- 300分求解决方案--触发器
- 为什么用pro*c连接远端数据库总是提示:ORA-12154: TNS:could not resolve service name
- Oracle8i升级到Oracle9i后,连接失败的问题!急!!
- 分配通道时出错,大侠们来看下啊!
- select distinct的问题, 谢谢, 在线~~~~~~~~~~~~~~~~~~~
update (select A.COLUMN2 as anum2,B.COLUMN2 as bnum2
from A, (SELECT * FROM A WHERE COLUMN2 IS NOT NULL) B
WHERE A.COLUMN1 = B.COLUMN1
AND A.COLUMN2 IS NULL
)set anum2 = bnum2
试试,要求COLUMN1是主键
where exists (SELECT t2.COLUMN2 FROM A t2 where t2.Column1 = A.COLUMN1 AND t2.COLUMN2 is not null)
and A.COLUMN2 is null;
where exists (SELECT t2.COLUMN2 FROM A t2 where t2.Column1 = A.COLUMN1 AND t2.COLUMN2 is not null)
and A.COLUMN2 is null;
这个方式如果需要更新的列比较多的话就不好了吧?还有,column1不是主键
这个方式如果需要更新的列比较多的话就不好了吧?还有,column1不是主键