1. 程式人生 > 其它 >PGSQL 轉換全形到半形方法

PGSQL 轉換全形到半形方法

一、採用函式,適用於符號比較多的情況;

 1 --全形到半形轉換函式
 2 create or replace function CnFullToHalf(s character varying)    
 3 returns character varying    
 4 as    
 5 $$    
 6 declare    
 7   retval character varying;    
 8   c character varying;    
 9   l integer;
10     
11 begin    
12 l=length(s);    
13 retval=
''; 14 while l>0 loop 15 c=left(s,1); 16 if c=' ' then -- 全形空格 17 retval=retval||' '; 18 elsif c>='' and c<='' then -- 全形!到~的範圍 19 retval=retval || chr(ascii('!')+ascii(c)-ascii('')); 20 else 21 retval=retval||c;
22 end if; 23 s=substring(s,2,l-1); 24 l=l-1; 25 end loop; 26 return retval; 27 end; 28 $$language plpgsql strict immutable;
View Code

原文 :[PostgreSQL]全形和半形字元轉換函式 – QDAC資料訪問元件網站

二、採用REPLACE函式,適用符號較少的情況 ;

update client set name=replace(name,'','(')
update client set name=
replace(name,'',')') --將全形括號 替換成 半形的;

三、找出有重複的進行刪除 ;

select 'delete from client where name='''||name||''';' from client where replace(name,'','(') in (select name from client)
and name like '%(%'
select 'delete from client where name='''||name||''';' from client where replace(replace(name,'','('),'',')') in (select name from client)
and name like '%(%'