gpt4 book ai didi

sql-server - 如何在文本字段中将字符串 '&' 替换为 '&&'

转载 作者:行者123 更新时间:2023-12-04 01:44:44 35 4
gpt4 key购买 nike

这是针对 SQL Server 2000 的,我无法更改 :(

我在搜索字符串时遇到一些问题

&

并将其替换为

&&

我的目标是一个文本字段(不是全文索引)

我试过

UPDATE documents
SET doc_xml = REPLACE(doc_xml, '&' , '&&')

但这不起作用,因为我必须转义 & 字符。我试过

ESCAPE '\'

在最后,但没有运气。

示例目标内容是这样的:

<FOLDER_Name>Buy&amp;&amp;Go</FOLDER_Name>
<PRODUCT_Name>Buy &amp;&amp; Go</PRODUCT_Name>
<SKU_Name>Buy &amp; Go</SKU_Name>
<COMPANY_Name>AT&amp;T</COMPANY_Name>

我只想换单

 &amp; 

在最后两行中,我需要获得的结果是:

<FOLDER_Name>Buy&amp;&amp;Go</FOLDER_Name>
<Product_Name>Buy &amp;&amp; Go</Product_Name>
<SKU_Name>Buy &amp;&amp; Go</SKU_Name>
<COMPANY_Name>AT&amp;&amp;T</COMPANY_Name>

我必须保留原始内容中的空格,也不要修改已经有双符号的字符串

&amp;&amp;  

最佳答案

一种方法是替换两次,第二次替换四边形值。

declare @table table (x xml)
insert into @table
values(
'<FOLDER_Name>Buy&amp;&amp;Go</FOLDER_Name>
<PRODUCT_Name>Buy &amp;&amp; Go</PRODUCT_Name>
<SKU_Name>Buy &amp; Go</SKU_Name>
<COMPANY_Name>AT&amp;T</COMPANY_Name>')

update @table
set x = convert(xml,
replace(
replace(convert(varchar(max),x),'&amp;','&amp;&amp;'),'&amp;&amp;&amp;&amp;','&amp;&amp;'
)

)

select * from @table

如果这不是 xml 列,则:

declare @table table (x varchar(max))
insert into @table
values(
'<FOLDER_Name>Buy&amp;&amp;Go</FOLDER_Name>
<PRODUCT_Name>Buy &amp;&amp; Go</PRODUCT_Name>
<SKU_Name>Buy &amp; Go</SKU_Name>
<COMPANY_Name>AT&amp;T</COMPANY_Name>')

update @table
set x = replace(
replace(x,'&amp;','&amp;&amp;'),'&amp;&amp;&amp;&amp;','&amp;&amp;'
)

select * from @table

所以你的代码应该是这样的:

UPDATE documents
SET doc_xml =
convert(xml,
replace(
replace(convert(varchar(max),x),'&amp;','&amp;&amp;'),'&amp;&amp;&amp;&amp;','&amp;&amp;'
)

)

关于sql-server - 如何在文本字段中将字符串 '&amp;' 替换为 '&amp;&amp;',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54242351/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com