sql-server – TSQL 2008使用LTrim(RTrim并且数据中仍有空格

前端之家收集整理的这篇文章主要介绍了sql-server – TSQL 2008使用LTrim(RTrim并且数据中仍有空格前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我将数据清理到旧数据表中,然后再将其移动到新数据表中.其中一个字段在列中有空格,右边和右边.剩下.我写了下面的代码解决这个问题,但仍然有领先的空间?使用此代码时,大部分数据都是干净的,但由于某些原因,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]

猜你在找的MsSQL相关文章