在具有换行符的字段上替换?

问题描述

| 因此,我有一个字段,该字段基本上每行存储一个完整的XML文件,并带有换行符,而且我需要从近三百行中删除一些文本。无论我做什么,replace()函数都不会找到有问题的文本,通过搜索我所能找到的只是一群试图删除换行符的人。我看不到replace()不能正常工作的任何原因,因此我必须以某种方式对其进行格式化。救命? 编辑:这是我的广泛意思的示例:
<script>...</script><dependencies>...</dependencies><bunch of other stuff></bunch of other         stuff><labels><label description=\"Field2\" languagecode=\"1033\" /></labels><events><event           name=\"onchange\" application=\"false\" active=\"true\"><script><![field2.DataValue = (some equation);

</script><dependencies /></event></events><a bunch more stuff></a bunch more stuff>
我只需要删除事件标记间的所有内容。所以我的sql代码是这样的:
replace(fieldname,\'<events><event name=\"onchange\" application=\"false\" active=\"true\"><script><![field2.DataValue = (some equation);

</script><dependencies /></event></events>\',\'\')
我已经这样尝试过了,并且我已经在一行上全部尝试过了,并且我尝试使用char(10)来实现换行符,但是没有。     

解决方法

        内森的答案很接近。由于此问题是搜索产生的第一件事,因此我想为我的问题添加解决方案。
select replace(field,CHAR(13)+CHAR(10),\' \')
我将换行符替换为一个空格,以防万一没有中断。可能是您想始终不更换任何东西,在这种情况下,应使用
\'\'
代替
\' \'
。 希望这对其他人有帮助,他们不必单击搜索引擎结果中的第二个链接。     ,        为我工作的SQL2012- 更新YourTable 设置YourCol = REPLACE(YourCol,CHAR(13)+ CHAR(10),\'\')     ,        如果您的列是
xml
型列,则可以在列上使用
delete
方法删除remove7ѭ节点。有关更多信息,请参见http://msdn.microsoft.com/zh-cn/library/ms190254(v=SQL.90).aspx。     ,        尝试两个简单的测试。 尝试对没有双引号(或单引号)但确实具有CRLF的xml字符串进行替换。它行得通吗?如果是,则需要转义引号。 尝试对没有CRLF的xml字符串进行替换。它行得通吗?大。如果是,则仅对CRLF使用两个嵌套的
replace()
,然后用第二个outter替换所讨论的字符串。     ,        很多人不记得换行符是两个字符 (字符10 \\ n和字符13 \\ r) 更换两者,你应该很好。
SELECT 
REPLACE(field,CHR(10)+CHR(13),\'\' )
FROM Blah..