从字段中删除多余的间距,换行符,制表符

我正在尝试拉取包含基本客户联系信息的联系数据。 问题:在地址栏中有换行符,我不知道什么时候会删除它们。

我已经尝试了以下两个查询的变体,并且都产生了相同的结果,这些结果是转移到excel时占用多行的地址。 我不断得到不均匀的数据行 – 10个客户端名称,但是说15行地址不符合客户端名称。

例1:

SELECT clientname, contaddress, ContTownCity, ContCounty, contpostcode, Contphone, ContEmail, replace( replace( replace( replace(contAddress, Char (9),''), Char(13),''), char(10),'') FROM tblengagement as E INNER JOIN tblcontacts as C ON e.contindex = c.ContIndex; 

示例2查看所需字段的查询:

  select replace( replace( replace( LTrim(RTrim(ContAddress)), ' ',' |'), '| ',''), '|','') AS AddressSingleSpace from salesforce1 

更好的方式来查询这个想法,或者我应该采取一个完全不同的方法来收集这个?

我会说你应该清理数据

 Update Table SET Column = replace(replace(replace(column,Char(13),'',Char(10),''),Char(9),'') WHERE Column is Not Null 

*在运行前将列更改为包含这些字符的string,然后再进行validation。 我没有能够testing

这样做的好处是,最好是正确地清理数据,然后尝试在select语句中执行。 如果您曾经导出到其他系统(如ssrs),不会导致您的报告停滞不前。


你可以做的另一个想法是添加一个存储自动填充空值的date时间的列。 如果你使用上面的脚本,你也可以通过它来过滤DateColumn为NULL的地方,然后用GetDate()这样的date戳来填充该列。

这意味着它不会永远随着数据集的增长而运行。