sql语句更新两个字段相加的问题

zyy6418783 2010-05-26 08:05:09
第一次来csdn,好兴奋的。请各位大虾们,不吝赐教!
下面有一张表,暂且就叫test表吧,所有字段都是varchar2类型的。
id mode1 mode2 mode3
01234 yeye123 yeye123 yeye123
01235 yeye234 yeye234 yeye234
01236 yeye456 yeye456 yeye456
01237 yeye789 yeye789 yeye789
01238 yeye423 yeye423 yeye423

我要把id字段里面的数据更新为id字段数据加上mode1字段的数据
得出结果为:
id mode1 mode2 mode3
01234yeye123 yeye123 yeye123 yeye123
01235yeye234 yeye234 yeye234 yeye234
01236yeye456 yeye456 yeye456 yeye456
01237yeye789 yeye789 yeye789 yeye789
01238yeye423 yeye423 yeye423 yeye423

用update语句怎么做出来....
假如mode1有为null值的..
...全文
927 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yhcustc 2010-05-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ojuju10 的回复:]
直接:
update test set id = id || mode1;
[/Quote]

可以的。

nvl(mode1,'') 等与 mode1,因为 ''就是 null,白转换了 null叠加非空字符串不能 null哦
不信可以 试试这个看看
select * from dual where nvl(null,'') is null;
ojuju10 2010-05-27
  • 打赏
  • 举报
回复
直接:
update test set id = id || mode1;

心中的彩虹 2010-05-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 zyy6418783 的回复:]
第一次来csdn,好兴奋的。请各位大虾们,不吝赐教!
下面有一张表,暂且就叫test表吧,所有字段都是varchar2类型的。
id mode1 mode2 mode3
01234 yeye123 yeye123 yeye123
01235 yeye234 yeye234 yeye234
01236 yeye456 yeye456 yeye456
01237 ye……
[/Quote]


--你这里id应该是字符的吧
update test set id=id||nvl(mode1,'')



vber1010 2010-05-27
  • 打赏
  • 举报
回复
问题是如果楼主的id字段是数字型的就不能更新成功,会有‘无效数字’的错误提示。所以楼主要首先确定id字段类型。
iihero 2010-05-27
  • 打赏
  • 举报
回复
update test set id = id || mode1;
或者
update test set id = id || nvl(mode1, '');
waymar 2010-05-27
  • 打赏
  • 举报
回复
最好是显式转换类型to_char
vber1010 2010-05-26
  • 打赏
  • 举报
回复
楼上正解
Adebayor 2010-05-26
  • 打赏
  • 举报
回复
update test set id = id || mode1;
luoyoumou 2010-05-26
  • 打赏
  • 举报
回复
update test set id=id+nvl(model1,'');

3,490

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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