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 '%(%'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM