Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 如何在SQL Server中替换字符串中的分隔符_Sql Server 2008 - Fatal编程技术网

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中使用某种循环,它没有任何本机字符串处理方法,而且即使是这样,您选择的编程语言也会更好。这非常有帮助!让我试试,我正在寻找完全相同的东西!是的,这正是我所寻找的!非常感谢!我很高兴这对您有帮助,如果这个答案解决了问题,请不要忘记将其标记为答案:)