首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

字符串删除有关问题

2012-03-08 
字符串删除问题?有下列数据:0101020000116300010102000010020001010600001006000101080000131900想把中间

字符串删除问题?
有下列数据:
0101020000116300
0101020000100200
0101060000100600
0101080000131900
想把中间的四个0和后面的两个0删除掉,变成下面的形式:
0101021163
0101021002
0101061006
0101081319
如何操作?


[解决办法]
看样子,你要去掉的0位置是固定的
select stuff(stuff ( '0101020000116300 ',7,4, ' '),11,2, ' ')
[解决办法]
create table tb(col varchar(20))
insert into tb values( '0101020000116300 ')
insert into tb values( '0101020000100200 ')
insert into tb values( '0101060000100600 ')
insert into tb values( '0101080000131900 ')
go
update tb
set col = left(replace(col, '0000 ', ' '),len(replace(col, '0000 ', ' '))-2)
select * from tb
drop table tb
/*
col
--------------------
0101021163
0101021002
0101061006
0101081319
(所影响的行数为 4 行)
*/
[解决办法]
select replace(replace( '0101020000116300 ', '0000 ', ' '),right(replace( '0101020000116300 ', '0000 ', ' '),2), ' ')

0101021163

(1 row(s) affected)

[解决办法]
--固定位置的
select stuff(stuff ( '0101020000116300 ',7,4, ' '),11,2, ' ')
--非固定位置的
select replace(replace( '0101020000116300 ', '0000 ', ' '), '00 ', ' ')
--非固定位置的 只针对成倍的
select replace( '0101020000116300 ', '00 ', ' ')

[解决办法]
你没说字段名
select stuff(stuff (字段名,7,4, ' '),11,2, ' ')

[解决办法]
select stuff(stuff (字段名,7,4, ' '),11,2, ' ') from 表名
[解决办法]
....
update 表名 set 字段名 = stuff(stuff (字段名,7,4, ' '),11,2, ' ')

热点排行