VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1841|回复: 10

replace的使用

[复制链接]

2

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-2-10 21:30:01 | 显示全部楼层 |阅读模式
表T中有字段c1。c1的值为:
<Aes><Cmd>MAReport</Cmd><Preview>false</Preview</Aes>

<Cmd> </Cmd>中间的值不固定,可以为任意字符,现在想把所有记录的
<Cmd> </Cmd>这段改为<Cmd>自己定义</Cmd>的一个自己固定的字符,请问要是用replace该如何解决,谢谢各位.
回复

使用道具 举报

0

主题

93

帖子

46.00

积分

新手上路

Rank: 1

积分
46.00
发表于 2020-4-5 16:45:02 | 显示全部楼层
是用stuff,不是有replace
回复

使用道具 举报

0

主题

100

帖子

53.00

积分

新手上路

Rank: 1

积分
53.00
发表于 2020-4-5 17:15:01 | 显示全部楼层
用substring()截取.
回复

使用道具 举报

0

主题

100

帖子

53.00

积分

新手上路

Rank: 1

积分
53.00
发表于 2020-4-5 22:15:02 | 显示全部楼层
left(c1,charindex('<Cmd>')-1)+'自己定义'+right(c1,len(c1)-charindex('</Cmd>')+1)
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-4-5 23:30:02 | 显示全部楼层
replace('<Aes><Cmd>MAReport</Cmd><Preview>false</Preview</Aes>','MAReport','example')
回复

使用道具 举报

2

主题

18

帖子

16.00

积分

新手上路

Rank: 1

积分
16.00
发表于 2020-4-6 10:30:01 | 显示全部楼层
declare @c varchar(8000)
set @c='<Aes><Cmd>MAReport</Cmd><Preview>false</Preview</Aes>'

select @c=left(@c,charindex('<cmd>',@c)+4)+'要替换的字符串'+right(@c,len(@c)-charindex('</cmd>',@c)+1)
print @c
回复

使用道具 举报

0

主题

211

帖子

108.00

积分

新手上路

Rank: 1

积分
108.00
发表于 2020-4-6 11:15:01 | 显示全部楼层
create table T(c1 varchar(100))
insert T select '<Aes><Cmd>MAReport</Cmd><Preview>false</Preview</Aes>'

update T set
c1=stuff(c1, charindex('<Cmd>', c1), charindex('</Cmd>', c1)-charindex('<Cmd>', c1)+6, '<Cmd>自己定义</Cmd>')

select * from T
--result
c1                                                                                                   
----------------------------------------------------------------------------------------------------
<Aes><Cmd>自己定义</Cmd><Preview>false</Preview</Aes>

(1 row(s) affected)
回复

使用道具 举报

0

主题

35

帖子

22.00

积分

新手上路

Rank: 1

积分
22.00
发表于 2020-4-6 11:45:01 | 显示全部楼层
declare @a varchar(8000)
set @a = '<Aes><Cmd>MAReport</Cmd><Preview>false</Preview</Aes>'
select left(@a,charindex('<Cmd>',@a) + 4) +'我' + right(@a,len(@a)-charindex('</Cmd>',@a) + 1)

回复

使用道具 举报

2

主题

18

帖子

16.00

积分

新手上路

Rank: 1

积分
16.00
发表于 2020-4-6 14:30:01 | 显示全部楼层
update t1 set c=left(c,charindex('<cmd>',c)+4)+'要替换的字符串'+right(c,len(c)-charindex('</cmd>',c)+1)
回复

使用道具 举报

0

主题

12

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-4-6 15:00:01 | 显示全部楼层
如果每一行记录只包含一个<Cmd>...</Cmd>:

declare @str1 varchar(100),@str2 varchar(20)
set @str1='<Aes><Cmd>MAReport</Cmd><Preview>false</Preview></Aes>'
set @str2='testString'

select stuff(@str1,charindex('<Cmd>',@str1)+5,charindex('</Cmd>',@str1)-charindex('<Cmd>',@str1)-5,@str2)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表