周末求一SQL语句,请各位不吝赐教

boombacn 2008-04-12 02:07:33
我这有一个列friend_code,里面的数据有点乱,10位的也有,8位的也有,其他的长度也有,我想将这里头不足10位的在前面加0补足10位,请问这个句子怎么写?在线等
...全文
93 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
boombacn 2008-04-12
  • 打赏
  • 举报
回复
终于会给分了,前面有好几个贴没给分结贴
boombacn 2008-04-12
  • 打赏
  • 举报
回复
可以了,谢谢楼上大大
Limpire 2008-04-12
  • 打赏
  • 举报
回复
--是char和varchar之间的区别问题
update so_main_h set mainid=right('0000000000'+ltrim(rtrim(mainid)),10) from so_main_h where len(ltrim(rtrim(mainid)))<10
boombacn 2008-04-12
  • 打赏
  • 举报
回复
我的字段是char 30
boombacn 2008-04-12
  • 打赏
  • 举报
回复
楼上的大哥,我根据你的语句执行,在测试环境中执行成功了,然后到另一个环境中执行,结果所有不满10位的全值都变成空白了,是不是我的字段属性、长度什么的有问题?
Limpire 2008-04-12
  • 打赏
  • 举报
回复
update so_main_h set mainid=right('0000000000'+mainid,10) from so_main_h where len(mainid)<10
boombacn 2008-04-12
  • 打赏
  • 举报
回复
再帮忙看看,我要拿这个查询出来的值覆盖到原来的值上,不知道怎么写了,我这样写是有错误的
update so_main_h set mainid=(select right('0000000000'+mainid,10) from so_main_h)

服务器: 消息 512,级别 16,状态 1,行 1
子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
语句已终止。
yinqi025 2008-04-12
  • 打赏
  • 举报
回复
学习了...原来可以这样,呵呵
Limpire 2008-04-12
  • 打赏
  • 举报
回复
select right('0000000000'+friend_code,10) from 表

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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