SQL 有则。。。无则。。。

blasterboy 2003-12-25 12:05:12
1:如果记录,有则更新,无则插入
如:table表中
A B C D ......几个字段,A,B主KEY .如果A=1,B=2存在于table中,则更新,否则插入一条数据,C,D即后面的数据随便插入,但是我不知道后面有几个字段。


2:如果记录,有则不处理,无则插入
如:table表中
A B C D ......几个字段,A,B主KEY .如果A=1,B=2存在于table中,则不处理,否则插入一条数据,C,D即后面的数据随便插入,但是我不知道后面有几个字段。

3:如果记录,有则删除,无则不处理。
如:table表中
A B C D ......几个字段,A,B主KEY .如果A=1,B=2存在于table中,则删除这条数据,否则不处理。
...全文
112 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
beckhambobo 2003-12-26
  • 打赏
  • 举报
回复
存在于A表上则更新,否则插入
merge into table1 a
using(select * from table2 b)
on (a.id=b.id)
when matched then
update set fno='old'
when not matched then
insert into values(a.id,'new');

参考:
http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96540/statements_915a.htm#SQLRF01606
拓狼 2003-12-26
  • 打赏
  • 举报
回复
Oracle9i有这样的SQL语句,具体语法如下:

merge into table_name as table_alias
using (table/view/sub_query) as alias
on (join condition)
when matched then
update set col1=col_val1,
col2=col2_val
when not matched then
insert (column_list)
values (column_values);

qiansl 2003-12-26
  • 打赏
  • 举报
回复
分类判断,取到你要的条件,然后执行操作,不难的---
blasterboy 2003-12-26
  • 打赏
  • 举报
回复
真的没有人帮帮我:(
高手,大虾,谢谢!
shahand 2003-12-25
  • 打赏
  • 举报
回复
merge
jukyy 2003-12-25
  • 打赏
  • 举报
回复
DECODE();
euler 2003-12-25
  • 打赏
  • 举报
回复
.
blasterboy 2003-12-25
  • 打赏
  • 举报
回复
为什么没有人回答呢?
需要你的帮助,谢谢!!
LGQDUCKY 2003-12-25
  • 打赏
  • 举报
回复
那的需要动态SQL语句来实现:查出总共有多少个字段
然后构造SQL语句:
动态sql
str:='update table_name set col1=11'+col2+col3;
execute immediate str ;

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧