加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 06:41:57 所属栏目:MsSql教程 来源:网络整理
导读:我将数据清理到旧数据表中,然后再将其移动到新数据表中.其中一个字段在列中有空格,右边和右边.剩下.我写了下面的代码来解决这个问题,但仍然有领先的空间?使用此代码时,大部分数据都是干净的,但由于某些原因,RT地址之前有空格……还有其他人有这种类型的问题
我将数据清理到旧数据表中,然后再将其移动到新数据表中.其中一个字段在列中有空格,右边和右边.剩下.我写了下面的代码来解决这个问题,但仍然有领先的空间?使用此代码时,大部分数据都是干净的,但由于某些原因,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]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读