1. 程式人生 > >(ORACLE)sql判斷一個欄位是否全數字 或含有中文及統計某個欄位中中文的個數

(ORACLE)sql判斷一個欄位是否全數字 或含有中文及統計某個欄位中中文的個數

一、判斷一個欄位是否全數字 或含有中文

update (select length(t.name), t.* -- name,length(name)  
          from g_enterprise_info t  
         where nvl2(translate(name, '\1234567890 ', '\'),  
                    'is characters ',  
                    'is number ') = 'is number '  
           and asciistr(gszcdjh) like '%\%')  
   set name = gszcdjh,  
       gszcdjh =name ;  

判斷一個欄位是否全數字

    translate(name, '\1234567890 ', '\')  

判斷一個欄位是否含有中文

    asciistr(gszcdjh) like '%\%'  

二、在資料中怎麼統計某個欄位中中文的個數

表dept有如下資料:

Oracle 中 length 求的是字元的長度,lengthb是位元組的長度,一箇中文是2個位元組,數字,字母,標點之類是一個位元組。 
  www.2cto.com  

select lengthb(DNAME) from dept;  --


 

select LENGTH(DNAME) from dept;

 

-- 統計欄位DNAME中中文的個數

select lengthb(DNAME) - length(DNAME) from dept;



 

ref:      https://blog.csdn.net/lanqibaoer/article/details/45196959

           https://www.2cto.com/database/201303/192482.html