怎么把0001 0002 1000 1111 类似这样的字段前面的0去掉

dacai2 2013-08-06 08:24:19
前提是字段类型是char的不能变,最好能用一个语句直接修改数据库里该字段所有的数据
...全文
395 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
baiynije 2013-10-15
  • 打赏
  • 举报
回复
如果你的版本是ASE15.02以上,可以用isnumeric来判断该字段的值是否为数字组成, 如: update tab1 set col1 = convert(varchar(10),convert(integer,col1)) where isnumeric(col1) = 1
ceozenliu 2013-08-08
  • 打赏
  • 举报
回复
用這個: select str_replace(str_replace(ltrim(str_replace(str_replace('0001 0002 1000 1111',' ','-'),'0',' ')),' ','0'),'-',' ') 說明: 1.先把「空白」轉成「-」。 2.再把「0」轉成「空白」 3.利用ltrim函數,去除字串左邊的空白 4.把「空白」再轉回成「0」 5.最後,把「-」,再轉成原來的「空白」 這樣,就算字串中包含英文字母,也可以的 select str_replace(str_replace(ltrim(str_replace(str_replace('0001 0002 1000 1111',' ','-'),'0',' ')),' ','0'),'-',' ') ====================== 1 0002 1000 1111
dacai2 2013-08-06
  • 打赏
  • 举报
回复
引用 1 楼 Mr_Bean 的回复:
强制int型转化啊
要是这个字段里下面还有些字符比如aaa bbbb,强制转化了会有问题么?
Mr_Bean 2013-08-06
  • 打赏
  • 举报
回复
强制int型转化啊

2,596

社区成员

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

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