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()函數可以替換數據中所有位置的空格
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()函數可以替換數據中所有位置的空格
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.