从字段

时间:2016-08-10 14:37:39

标签: sql sql-server excel

我正在尝试提取包含基本客户联系信息的联系人数据。问题:地址字段中有换行符,我不能为我的生活找出什么会删除它们。

我尝试过以下两种查询的变体,并且都生成相同的结果,这些地址在传输到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

更好地查询此方法的想法,还是我应采取完全不同的方法来收集这个?

1 个答案:

答案 0 :(得分:1)

我会说你应该只清理数据

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

*在运行以验证之前,首先将列更改为包含这些字符的字符串。我还没能测试

这样做的好处是最好正确地清理数据,然后尝试在select语句中执行此操作。如果你曾经出口过ssrs等其他系统,那么不要让你的报告陷入困境。

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

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