前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【DB笔试面试457】如何判断一个字符串是否含有中文汉字?

【DB笔试面试457】如何判断一个字符串是否含有中文汉字?

作者头像
AiDBA宝典
发布2019-09-30 17:10:04
4910
发布2019-09-30 17:10:04
举报
文章被收录于专栏:小麦苗的DB宝专栏

题目部分

如何判断一个字符串是否含有中文汉字?

答案部分 可以利用LENGTH、LENGTHB和TO_SINGLE_BYTE函数来解决这个问题。

其中,LENGTH返回以字符为单位的长度,LENGTHB返回以字节为单位的长度,TO_SINGLE_BYTE将字符串中的多字节字符转化为单字节字符。

此外,还可以使用ASCIISTR和CONVERT函数找出包含汉字的字符串。

若利用LENGTH、LENGTHB和TO_SINGLE_BYTE函数来实现该需求,则类似的WHERE条件为:“LENGTHB(COL) <> LENGTH(COL) AND LENGTHB(TO_SINGLE_BYTE(COL)) <> LENGTH(TO_SINGLE_BYTE(COL))”。

下面给出一个示例,在AA表中插入的“2”是全角字符。

代码语言:javascript
复制
SYS@lhrdb> CREATE TABLE AA (COL   VARCHAR2(255));
Table created.
SYS@lhrdb> INSERT INTO AA (COL) VALUES ('1');
1 row created.
SYS@lhrdb> INSERT INTO AA (COL) VALUES ('2'); --全角字符
1 row created.
SYS@lhrdb> INSERT INTO AA (COL) VALUES ('小麦苗');
1 row created.
SYS@lhrdb> COMMIT;
Commit complete.
SYS@lhrdb> SELECT * FROM AA;   
COL
----------
1
2
小麦苗
SYS@lhrdb> COL COL FORMAT A10
SYS@lhrdb> COL SINGLE_COL  FORMAT A10
SYS@lhrdb> SELECT A.COL COL,
  2         TO_SINGLE_BYTE(A.COL) SINGLE_COL,
  3         LENGTH(A.COL) LENGTH_COL,
  4         LENGTHB(A.COL) LENGTHB_COL,
  5         LENGTH(TO_SINGLE_BYTE(A.COL)) SINGLE_LENGTH_COL,
  6         LENGTHB(TO_SINGLE_BYTE(A.COL))  SINGLE_LENGTHB_COL
  7    FROM AA A
  8   WHERE LENGTHB(A.COL) <> LENGTH(A.COL)
  9     AND LENGTHB(TO_SINGLE_BYTE(A.COL)) <> LENGTH(TO_SINGLE_BYTE(A.COL));
COL        SINGLE_COL LENGTH_COL LENGTHB_COL SINGLE_LENGTH_COL SINGLE_LENGTHB_COL
---------- ---------- ---------- ----------- ----------------- ------------------
小麦苗 小麦苗              3           6                 3                  6

& 说明:

有关字符串中是否含义汉字和多字节字符的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-1688209/

本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。

About Me:小麦苗

● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/

● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-12-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档