PGSQL 轉換全形到半形方法
阿新 • • 發佈:2022-03-17
一、採用函式,適用於符號比較多的情況;
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=View Code''; 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;
原文 :[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 '%(%'