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

前端之家收集整理的这篇文章主要介绍了sql-server – TSQL 2008使用LTrim(RTrim并且数据中仍有空格前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我将数据清理到旧数据表中,然后再将其移动到新数据表中.其中一个字段在列中有空格,右边和右边.剩下.我写了下面的代码解决这个问题,但仍然有领先的空间?使用此代码时,大部分数据都是干净的,但由于某些原因,RT地址之前有空格……还有其他人有这种类型的问题吗?
  1. ,CASE
  2. WHEN PropStreetAddr IS NOT NULL
  3. THEN (CONVERT(VARCHAR(28),PropStreetAddr))
  4. WHEN PropStreetAddr is NOT NULL Then (Select LTrim(RTrim(PropStreetAddr)) As PropStreetAddr)
  5. ELSE NULL END as 'PROPERTY_STREET_ADDRESS'

样本输出数据:

  1. 1234 20th St
  2. RT 1 Box 2
  3. 560 King St
  4. 610 Nowland Rd
  5. RT 1
  6. 1085 YouAreHere Ln
  7. RT 24 Box 12

解决方法

这是可行的表达方式.我假设没有不可见的内容.如果你怀疑它,你仍然应该追求@OMG小马推荐.我认为如果必须处理不可见的内容,可以将PATINDEX表达式添加到此表达式中.

sql Server CASE只处理一个WHEN子句然后中断.所以你永远不会进行第二次数据转换.此外,使用LTRIM和RTRIM函数时,所有NULL值都将转换为NULL.因此,您不需要对其进行测试,除非您想对NULL执行某些操作.

所以,试试这个:

  1. CONVERT(VARCHAR(28),LTRIM(RTRIM(PropStreetAddr))) as [PROPERTY_STREET_ADDRESS]

猜你在找的MsSQL相关文章