我正在尝试提取包含基本客户联系信息的联系人数据。问题:地址字段中有换行符,我不能为我的生活找出什么会删除它们。
我尝试过以下两种查询的变体,并且都生成相同的结果,这些地址在传输到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
更好地查询此方法的想法,还是我应采取完全不同的方法来收集这个?
答案 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()这样的日期戳来填充该列。
这意味着随着数据集的增长,它不会永远运行。