SQLPLUS问题:求SQL语句,将字符串前两位修改为指定的字符

kylie 2003-07-02 11:15:46
SQLPLUS问题:

今早在论坛提了个问题:
一个字符型字段,由'0'~'9' 组成,长度<=8,当长度<8 时将其补足8位,
前补'0' 。如何在一条SQL语句中解决这个问题?
bzszp(SongZip)给出了解决方法:
update customer set account = to_char(account,'00000000') where companycode = '206';

现在的问题是:

如何将account(由'0'~'9' 组成,长度=8)的前两位修改为'73'
求SQL语句(80分)

另:那有SQLPLUS的手册,最好是有象to_str,substr等函数用法的手册(20分)
...全文
333 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
kylie 2003-07-04
  • 打赏
  • 举报
回复
向各位提议用lpad函数的老大道歉:
我没有说清楚account字段是char(40),它虽然只使用了8位但后面是补空格的。
所以lpad要和rtrim搭配使用才行:
lpad(rtrim(account), 8, '0')

再次感谢!
bzszp 2003-07-02
  • 打赏
  • 举报
回复
www.oradb.net
kylie 2003-07-02
  • 打赏
  • 举报
回复
谢谢各位:

我的SQL问题已经解决,bzszp(SongZip)的回答

update customer set account = '73'||substr(to_char(account,'00000000'),4) where companycode = '206';

完全正确!我将给他(她?)80分

其它大大不用回答了。

另外SQLplus的手册没有独立的吗?例如chm格式的。
我是oracle新手,哈哈,虽然sql语言还是很熟悉的,
可是那些函数不熟悉,简直没法干活。oracle的书太多,
而我又过了啃书的年龄,头痛的时候才去医头!

BlueskyWide 2003-07-02
  • 打赏
  • 举报
回复
update customer set account='73'||substr(account,3);
bzszp 2003-07-02
  • 打赏
  • 举报
回复
to_char(account,'00000000')也有空格
因此从第4个字符开始截取

to_char
substr
这些函数在oracle帮助文档里面介绍得很详细,包括各种参数
kylie 2003-07-02
  • 打赏
  • 举报
回复
我试过用concat函数:
update customer set account = concat('73',to_char(account,'000000')) where companycode = '206';

很遗憾,73后面会跟个空格:'73 001234'
bzszp 2003-07-02
  • 打赏
  • 举报
回复
update customer set account = '73'||substr(to_char(account,'00000000'),4) where companycode = '206';
black_snail 2003-07-02
  • 打赏
  • 举报
回复
update customer set account = '09'||substr(account,3,6)
where companycode = '206';
kylie 2003-07-02
  • 打赏
  • 举报
回复
今天第一次在oracle论坛提问,
得到bzszp(SongZip)大大的大力帮助,非常感谢!
哈哈,bzszp(SongZip)大大一条语句:
update customer set account = '73'||substr(to_char(account,'00000000'),4) where companycode = '206';
回答了我两个问题,真是高手!
有机会还要向老大学习,兄弟的分数是大大的有(5位数),哈哈。

to:
beckhambobo(beckham),lpad(account,8,'0')并不能在account前补'0'。
beckhambobo 2003-07-02
  • 打赏
  • 举报
回复
update customer set account = '73'||substr(lpad(account,8,'0'),4) where companycode = '206';

函数:
http://download-west.oracle.com/docs/cd/A87860_01/doc/server.817/a85397/function.htm#998166

17,377

社区成员

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

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