我将数据清理到旧数据表中,然后再将其移动到新数据表中.其中一个字段在列中有空格,右边和右边.剩下.我写了下面的代码来解决这个问题,但仍然有领先的空间?使用此代码时,大部分数据都是干净的,但由于某些原因,RT地址之前有空格……还有其他人有这种类型的问题吗?
,CASE WHEN PropStreetAddr IS NOT NULL THEN (CONVERT(VARCHAR(28),PropStreetAddr)) WHEN PropStreetAddr is NOT NULL Then (Select LTrim(RTrim(PropStreetAddr)) As PropStreetAddr) ELSE NULL END as 'PROPERTY_STREET_ADDRESS'
样本输出数据:
1234 20th St RT 1 BOX 2 560 King St 610 Nowland Rd RT 1 1085 YouAreHere Ln RT 24 Box 12
解决方法
这是可行的表达方式.我假设没有不可见的内容.如果你怀疑它,你仍然应该追求@OMG小马推荐.我认为如果必须处理不可见的内容,可以将PATINDEX表达式添加到此表达式中.
SQL Server CASE只处理一个WHEN子句然后中断.所以你永远不会进行第二次数据转换.此外,使用LTRIM和RTRIM函数时,所有NULL值都将转换为NULL.因此,您不需要对其进行测试,除非您想对NULL执行某些操作.
所以,试试这个:
CONVERT(VARCHAR(28),LTRIM(RTRIM(PropStreetAddr))) as [PROPERTY_STREET_ADDRESS]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。