上一篇:Java.util包简介并教您如何开发应用之二 (2) >>
关于update语句在不同数据库中的差别
UPDATE A
SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)
MS SQL Server不支持这样的语法,相对应的写法为:
UPDATE A
SET A1 = B1, A2 = B2, A3 = B3
FROM A LEFT JOIN B ON A.ID = B.ID
个人感觉MS SQL Server的Update语法功能更为强大。MS SQL SERVER的写法:
UPDATE A
SET A1 = B1, A2 = B2, A3 = B3
FROM A, B WHERE A.ID = B.ID
在Oracle和DB2中的写法就比较麻烦了,如下:
UPDATE A
SET (A1, A2, A3) = (SELECT B1, B2, B3 FROM B WHERE A.ID = B.ID)
WHERE ID IN (SELECT B.ID FROM B WHERE A.ID = B.ID)
posted on 2004-07-23 20:06 温少 阅读(4106) 评论(16) 编辑 收藏
评论
# re: 关于Update语句在不同数据库中的差别
没错 t-sql对标准sql进行了扩充和改造
比如说top n,虽然功能比limit差,但很多时候用起来还是比较好的
说到update 这样更能有代表性
update a
set a.a1 = b.b1,a.a2 = c.c2
from a
inner join b on ...
inner join c on ...
连接表越多,则标准sql写起来越麻烦
2004-07-23 20:29 | progame
# re: 关于Update语句在不同数据库中的差别
我的post中的还不是使用标准SQL,标准SQL-92似乎更麻烦 :(
2004-07-23 22:05 | 温少
# re: 关于Update语句在不同数据库中的差别
感谢你的经验,已经学会了
2005-01-27 14:42 | www
# re: 关于Update语句在不同数据库中的差别
谢谢!我又解决了一个问题,我已经查了一天了,终于查到了。
2005-03-02 17:17 | 哈哈哈
# re: 关于Update语句在不同数据库中的差别
帮我们解决了问题,谢谢
2005-03-02 17:26 | 亮
# re: 关于Update语句在不同数据库中的差别
帮我们解决了问题,谢谢
2005-03-02 17:26 | 亮
# re: 关于Update语句在不同数据库中的差别
为这个问题郁闷了好久,谢谢
2005-03-29 09:48 | longylongy
# re: 关于Update语句在不同数据库中的差别
谢谢
2005-04-10 00:23 | eafy
# re: 关于Update语句在不同数据库中的差别
很有用,谢谢
2005-04-19 10:32 | song
# re: 关于Update语句在不同数据库中的差别
我又遇到新问题,oracle是否支持子串的比较?如某个表的一个字段与另一个表的某个字段的子串作对比,我试了一下,好象不行,郁闷......
2005-04-19 18:07 | 芳
# re: 关于Update语句在不同数据库中的差别
好东西,不过怎么我在oracle update好慢的呢?
我就从3w记录更新21条。。。等不到
后来我在21条记录更新21条记录,要22秒
2005-04-24 15:41 | 阿心
# re: 关于Update语句在不同数据库中的差别
@阿心
Oracle的写法当然慢,你要快的话,写存储过程吧
2005-04-29 00:21 | 温少
# re: 关于Update语句在不同数据库中的差别
那用hibernate写sql数据库中的update语句怎么写?
2005-04-29 13:24 | 学生
# re: 关于Update语句在不同数据库中的差别
那informix中呢,有人知道吗
2005-06-09 09:51 | 小顾
# re: 关于Update语句在不同数据库中的差别
很精辟,好!
2005-06-17 08:56 | Garfield
# re: 关于Update语句在不同数据库中的差别
顺便提个问题:
有两个表t1,t2,数据内容如下:
t1:
f1 f2
101 100
102 200
103 300
t2:
f1 f2
101 111
102 222
如果运行如下语句:
update t1 set f2=(select f2 from t2 where t1.f1=t2.f1)
t1里面f1=101,102的f2被更新为111,222。这是我想要的结果,
f1=103的f2被更新为null, 这就不是我想要的结果了,有什么
办法可以避免吗?
下一篇:java.util包(一) >>
相关文章:
- · 用Java的加密机制来保护你的数据
- · 面向方面 vs 面向对象 4(深入代码)
- · 构造方法的初始化顺序
- · 破除java神话之二:参数是传…
- · Something more …
- · Java的破解和反破解
- · Web application的压力测试
- · 最近使用JTest,总结一下经验,和大家交流
- · jtest使用手册
- · Debug和Release之本质区别
- · JFCUnit
- · Jtest的介绍
- · J2EE项目中开发团队的组建
- · 使用Ant
- · team programing …
- · 使用工作流开发应用程序
- · 软件工程的学习
- · J2EE项目中开发团队的组建
- · 框架设计案例研究
- · 模型驱动开发介绍
- · 新方法学
- · 节选<敏捷软件开发>第…
- · JFreeChart实时曲线(绝对一手资料,本例子我应用与多个实际项目中,与JMS技术结合)
- · 《XDoclet in Action》部分章节中文版
- · Java Web开发中的向导制作方案Easy Wizard介绍
- · 全面挖掘Java Excel API 使用方法
- · 使用FileUpload组件上传文件
- · 我说一下JAVA控制EXCEL的方法之一。(BORLAND.COM)
- · 在应用中加入全文检索功能—…
- · iText中的中文问题(二)—…
- · 使用LOG4J的心得体会
- · JFreeChart Hacking
- · JasperReport使用体验
- · 在Java中轻松打印文档
- · eclipse下的两个有用的包JadClipse和FindBugs(整理同事的心得所得)
- · eclipse+tomcat+lomboz的安装配置说明(网络中其他版本相关更正版,sunvoice经过实践…
- · Eclipse+Tomcat+Lomboz的配置总结 ------- 转载于 爪哇部落
- · Eclipse启动参数大全
