请教一个sql语句的问题

binghe27 2016-04-09 02:08:51

BEGIN
UPDATE dbo.YHZH SET HHBHID =
substring(ZJID,patindex('%[^0-9][0-9]%',ZJID)+1,patindex('%[0-9][^0-9]%',ZJID)-patindex('%[^0-9][0-9]%',ZJID)) FROM dbo.YHZH;
UPDATE dbo.YHZH SET HHBHID = ''
WHERE HHBHID = '0';
SELECT * FROM dbo.YHZH
END
GO


现在是这样的,原ZJID字段是某某某1234号,我网上找了上面那段代码改了一下,把字段中的数字提取到了HHBHID字段中。现在希望能把HHBHID中的数字不到9位数的,左侧补0,补足9位。但是不知道怎么写。

望各位帮帮忙。




不好意思,没什么分数了。不然就多给点了。只能意思一下了。
...全文
86 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongsheng10101 2016-04-09
  • 打赏
  • 举报
回复
不足9位,前补0,还有一种访求如下(right函数): -- 把HHBHID中的数字不到9位数的,左侧补0,补足9位 update YHZH set HHBHID=right('000000000'+HHBHID,9)
唐诗三百首 2016-04-09
  • 打赏
  • 举报
回复

create table YHZH(ZJID varchar(50),HHBHID varchar(50))

insert into YHZH(ZJID)
 select '某某某1234号'


update YHZH 
  set HHBHID=substring(ZJID,
                                         patindex('%[0-9]%',ZJID)+1,
                                         patindex('%[0-9][^0-9]%',ZJID)-patindex('%[0-9]%',ZJID))

update YHZH set HHBHID='' where HHBHID='0'

-- 把HHBHID中的数字不到9位数的,左侧补0,补足9位
update YHZH set HHBHID=replicate('0',9-len(HHBHID))+HHBHID


-- 结果
select * from YHZH

/*
ZJID                                               HHBHID
-------------------------------------------------- --------------------------------------------------
某某某1234号                                           000000234

(1 row(s) affected)
*/
binghe27 2016-04-09
  • 打赏
  • 举报
回复
如果无法直接写入到HHBHID字段中,把数据插入到新的字段也可以。
binghe27 2016-04-09
  • 打赏
  • 举报
回复
谢谢,谢谢。。。

34,594

社区成员

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

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