计算字符串中包含中文、英文字符长度

2012-11-12

  下面这个方法仅用在字符集为固定长度的数据库中:

  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

  考试大温馨提示:本内容来源于网络,仅代表作者个人观点,与本站立场无关,仅供您学习交流使用。其中可能有部分文章经过多次转载而造成文章内容缺失、错误或文章作者不详等问题,请您谅解。如有侵犯您的权利,请联系我们,本站会立即予以处理。

分享到:
0
相关阅读
友情链接
© 2018 我考网 http://www.woexam.com 中国互联网举报中心 湘ICP备18023104号 京公网安备 11010802020116号
违法和不良信息举报:9447029@qq.com