DB2表数据中存在空格问题解决办法

--创建测试表
create table administrator.testhyg(id int,name varchar(30),birth date);

--插入测试数据
insert into  ADMINISTRATOR.TESTHYG values(1001,'tianjin   ','2017-03-09');
insert into  ADMINISTRATOR.TESTHYG values(1002,'hyg  ','2017-03-08');
insert into  ADMINISTRATOR.TESTHYG values(1003,'dbsec','2017-03-07');
insert into ADMINISTRATOR.TESTHYG VALUES(1004,'   schina',current timestamp);
insert into ADMINISTRATOR.TESTHYG VALUES(1005,'HANG  ZHOU',CURRENT TIMESTAMP);

--查询表数据
select * from testhyg;

select * from testhyg order by name;

----------------------------------------------------------------------------
--用replace函数将数据中的空格替换为*显示出来
select replace(name,' ','*') from testhyg;

    select replace(name,' ','*') from testhyg
     1
     ----------
     tianjin
     hyg
     dbsec
     schina
     HANG**ZHOU

--将表数据行中的空格替换为*
update testhyg set name=replace(name,' ','*');

----------------------------------------------------------------------------

--trim()函数测试,只能将数据两端的空格去掉后显示出来
select trim(name) from testhyg;

--将数据行两端的空格去掉并更新表数据
update testhyg set name=trim(name);

    select * from testhyg
     ID   NAME       BIRTH
     ---- ---------- ----------
     1001 tianjin    2017-03-09
     1002 hyg        2017-03-08
     1003 dbsec      2017-03-07
     1004 schina     2017-03-09
     1005 HANG  ZHOU 2017-03-09
-----------------------------------------------------------------------------

--由此可见,trim()函数只能替换数据两端的空格,无法替换数据中间的空格
--而replace()函数可以替换数据中所有位置的空格

你可能感兴趣的:(DB2)