Sql server 2008 如何在SQL Server中替换字符串中的分隔符
我有以下数据Sql server 2008 如何在SQL Server中替换字符串中的分隔符,sql-server-2008,Sql Server 2008,我有以下数据 abc pqr xyz, jkl mno 这是一个由空格、新行、逗号、制表符等分隔符分隔的字符串。 单词前后可能有两个或多个连续空格、制表符或任何分隔符 我希望能够做到以下几点 删除单个单词的所有前导和尾随分隔符 在单个单词后面加上“或” 我试图通过构建一个由或子句分隔的T-SQL查询来实现这一点 谢谢我认为您只需使用SQL就可以实现所需(尽管我认为使用编程语言更好),以下是我的方法 请注意,我将只处理逗号、换行符和多个空格,但您可以使用相同的技术简单地删除其余不需要的字符
abc
pqr
xyz,
jkl mno
这是一个由空格、新行、逗号、制表符等分隔符分隔的字符串。
单词前后可能有两个或多个连续空格、制表符或任何分隔符
我希望能够做到以下几点
或子句分隔的T-SQL查询来实现这一点
谢谢我认为您只需使用SQL就可以实现所需(尽管我认为使用编程语言更好),以下是我的方法
请注意,我将只处理逗号、换行符和多个空格,但您可以使用相同的技术简单地删除其余不需要的字符
因此,我们假设有一个名为ExampleData
的表,其中一列名为DataBefore
,另一列名为DataAfter
DataBefore
:具有要清除的行值
DataAfter
:将承载已清除的文本
首先,我们需要从文本中删去前导空格(&s)
更新示例数据
设置DataAfter=LTRIM(RTRIM(DataBefore))
第二,我们应该清除所有逗号,并用空格替换它们(不管我们最终是否会有许多空格)
更新示例数据
设置DataAfter=replace(replace(DataAfter,“,”),char(13),”)
这是您可以使用相同技术继续并删除任何其他字符,然后用空格替换的部分
到目前为止,我们有一个前后都没有空格的文本,每个逗号、换行符、制表符、破折号等字符都被空格替换,让我们继续清理过程
现在,我们可以安全地将单词之间的空格替换为一个,这是通过使用以下SQL语句实现的:
更新示例数据
设置DataAfter=replace(replace(replace)(DataAfter,,,,,,,,,,,,,,,,,)>您需要在T-SQL中进行解析和构建?为什么?您使用什么语言来执行此字符串操作?不是编程语言。我希望能够在DBMS中执行此操作,SQL@Aaron-我使用工作流完成了这项工作(我们有工作流工具)但是,对于1000字以内的单词来说,这是很好的,但是随着列表的增长,应用程序会挂起,因为它必须在循环中调用API,它无法处理它。我认为SQL可能能够在没有问题的情况下处理多达10000个事务。Well,祝你好运,你也会在SQL Server中使用某种循环,它没有任何本机字符串处理方法,而且即使是这样,您选择的编程语言也会更好。这非常有帮助!让我试试,我正在寻找完全相同的东西!是的,这正是我所寻找的!非常感谢!我很高兴这对您有帮助,如果这个答案解决了问题,请不要忘记将其标记为答案:)