当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
Oracle认证综合辅导:计算字符串中包含中文、英文字符长度
发布时间:2012/10/1 13:15:52 来源:城市网学院 编辑:admin
   下面这个方法仅用在字符集为固定长度的数据库中:
    SQL> WITH STR AS (SELECT 'ABCDE 中文字符串 FG' S FROM DUAL)
    2 SELECT
    3 LENGTH(S) * 2 - LENGTHB(S) ENG,
    4 LENGTHB(S) - LENGTH(S) CHN,
    5 LENGTHB(S) * 2 - LENGTH(S) * 2 CHN_B
    6 FROM STR;
    ENG CHN CHN_B
    ---------- ---------- ----------
    7 5 10
    使用类似的方法可以解决一些其他的问题,比如求字符串中数值的长度:
    SQL> WITH STR AS (SELECT 'AB12349J;AL20AB' S FROM DUAL)
    2 SELECT
    3 LENGTH(S) - LENGTH(REPLACE(TRANSLATE(S, '0123456789', '9999999999‘), '9’)) NUM,
    4 LENGTH(REPLACE(TRANSLATE(S, '0123456789', '9999999999‘), '9’)) NOT_NUM
    5 FROM STR;
    NUM NOT_NUM
    ---------- ----------
    7 8
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved