如果字符串在前面汉字在后面的话可以处理
15:08:27 SQL> select * from tcc;AAA                  BBB
-------------------- ----------
abc
 abc
 abc
abc                  abc
%                    /
                     aaa
BCD-168电冰箱        aaa已选择7行。实际:80
15:08:36 SQL> select substr(aaa,1,2*length(aaa)-lengthb(aaa)) str1,
15:08:42   2  substr(aaa,2*length(aaa)-lengthb(aaa)+1) str2 from tcc;STR1                                     STR2
---------------------------------------- ----------------------------------------
abc
 abc
 abc
abc
%BCD-168                                  电冰箱已选择7行。实际:60
15:08:42 SQL>

解决方案 »

  1.   

    是的,以汉字划分
    select substr(col_name,1,lengthb(col_name)-length(col_name)),substr(col_name,lengthb(col_name)-length(col_name)) from table_name
      

  2.   

    写个存贮过程,主要思想:
    1.使用length计算字符串的长度;
    2.使用substr()函数依次读字符串如“BCD-168电冰箱”;
    3.对读入的每一个字符用CHR函数判别其ASCII码,
      若chr(i)>128,则作为汉字字符处理,将i、i+1位存入临时字符串;
    4.若字符串未结束,反复2,3;
    5.进行字符串字段的修改(删除所包含的临时字符串)和增加(临时字符串)。
      

  3.   

    做存储过程比较ASCII码比较保险些,而且灵活。不能用lengthb(col_name)-length(col_name)的方法得到汉字的个数,因为这种方法只实用与中文字符集的数据库。