Oracle

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

日期:2015/6/28来源: IT猫扑网

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

  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

相关文章

相关下载

网友评论

我要评论...
    没有更早的评论了
    取消