怎么写啊

NamtsoRye 2010-06-24 09:37:34
相当于 update 表名 if(state=1){set state=0} else{set state=1} where moduleroleid='1'
要怎么写SQL
...全文
80 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
NamtsoRye 2010-06-24
  • 打赏
  • 举报
回复
PL/SQL 一直在执行
iqlife 2010-06-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xinxin100198 的回复:]
什么错啊,报上来
[/Quote]
顶女人...是啊,错误什么啊,
ngx20080110 2010-06-24
  • 打赏
  • 举报
回复
哪里出问题了?

drop table test;
create table test (state number, moduleroleid varchar2(20));
insert into test values (1, '1');
insert into test values (0, '1');
insert into test values (null, '1');
insert into test values (1, '2');

select * from test;

STATE MODULEROLEID
---------- ------------------------------
1 1
0 1
1
1 2

update test set state=decode(state, 1, 0, 1) where moduleroleid = '1';

select * from test;

STATE MODULEROLEID
---------- ------------------------------
0 1
1 1
1 1
1 2

-- state为1的变成0了,state不为1的都变成1了
-- 你要的不是这样么?
alice鑫鑫 2010-06-24
  • 打赏
  • 举报
回复
什么错啊,报上来
NamtsoRye 2010-06-24
  • 打赏
  • 举报
回复
有问题 执行不对
ngx20080110 2010-06-24
  • 打赏
  • 举报
回复
update tablename set state=decode(state, 1, 0, 1) where moduleroleid = '1';

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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