sql中去掉字段的空格或多余字符

情景:

有一个表数据,插入的数据字段中含有空格,以至于数组分组时出分支,原始数据如下

mydb=# select row_number() over(partition by begincity order by pubtime desc),* from bills;               
 row_number | id |             goodsdesc              | beginunit  |   begincity   |       pubtime       | amount  
------------+----+------------------------------------+------------+---------------+---------------------+---------
          1 |  2 |  建 筑 设 备                       |  福 建 省  |  三 明 市     | 2015-10-05 07:21:22 |  165.29
          1 |  9 |  旋 挖 附 件 39 吨                 |  河 南 省  |  三 门 峡 市  | 2015-10-05 11:38:38 | 3739.03
          2 |  7 |  旋 挖 附 件 38 吨                 |  河 南 省  |  三 门 峡 市  | 2015-10-05 10:48:38 | 6313.45
          3 |  8 |  旋 挖 附 件 35 吨                 |  河 南 省  |  三 门 峡 市  | 2015-10-05 10:48:38 | 6850.54
          4 |  6 |  鲜 香 菇 2000 斤                  |  河 南 省  |  三 门 峡 市  | 2015-10-05 10:38:29 | 7806.61
          5 |  5 | 5 0 铲 车 , 后 八 轮 翻 斗 车     |  河 南 省  |  三 门 峡 市  | 2015-10-05 07:53:13 | 9407.32
          1 | 11 |  普 货 40 吨 需 13 米 半 挂 一 辆  |  上 海 市  |  上 海 市     | 2015-10-05 08:13:59 | 3564.18
          1 |  1 | 衣服                               | 海南省     | 三亚市        | 2015-10-05 09:32:01 | 1621.47
          1 |  4 | 普货                               | 福建省     | 三明市        | 2015-10-05 15:19:17 | 5409.37
          2 |  3 | 设备                               | 福建省     | 三明市        | 2015-10-05 11:21:54 |  114.85
          1 | 10 | 设备                               | 上海市     | 上海市        | 2015-10-05 07:59:35 | 5147.07
(11 rows)

从数据上看,福建省三明市本来是同一个的,但是由于空格关系被识别为两组。


解决:

string 为要处理的字段,可用到的函数有:

字符前的空格,用ltrim(string) 

字符后的空格,用rtrim(string) 

字符中的空格,用replace(string, ' ', ' ')


mydb=# update bills set goodsdesc=replace(goodsdesc,' ',''),beginunit=replace(beginunit,' ',''),begincity=replace(begincity,' ','');
UPDATE 11

结果:

mydb=# select row_number() over(partition by begincity order by pubtime desc),* from bills; //以begincity进行分组,按pubtime降序排序
 row_number | id |       goodsdesc        | beginunit | begincity |       pubtime       | amount  
------------+----+------------------------+-----------+-----------+---------------------+---------
          1 |  1 | 衣服                   | 海南省    | 三亚市    | 2015-10-05 09:32:01 | 1621.47
          1 |  4 | 普货                   | 福建省    | 三明市    | 2015-10-05 15:19:17 | 5409.37
          2 |  3 | 设备                   | 福建省    | 三明市    | 2015-10-05 11:21:54 |  114.85
          3 |  2 | 建筑设备               | 福建省    | 三明市    | 2015-10-05 07:21:22 |  165.29
          1 |  9 | 旋挖附件39吨           | 河南省    | 三门峡市  | 2015-10-05 11:38:38 | 3739.03
          2 |  7 | 旋挖附件38吨           | 河南省    | 三门峡市  | 2015-10-05 10:48:38 | 6313.45
          3 |  8 | 旋挖附件35吨           | 河南省    | 三门峡市  | 2015-10-05 10:48:38 | 6850.54
          4 |  6 | 鲜香菇2000斤           | 河南省    | 三门峡市  | 2015-10-05 10:38:29 | 7806.61
          5 |  5 | 50铲车,后八轮翻斗车   | 河南省    | 三门峡市  | 2015-10-05 07:53:13 | 9407.32
          1 | 11 | 普货40吨需13米半挂一辆 | 上海市    | 上海市    | 2015-10-05 08:13:59 | 3564.18
          2 | 10 | 设备                   | 上海市    | 上海市    | 2015-10-05 07:59:35 | 5147.07
(11 rows)

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值