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

来源:互联网 发布:最大公约数c语言程序 编辑:程序博客网 时间:2024/05/22 13:03

情景:

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

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)

0 0
原创粉丝点击