数据库sql如何查询某个字段只含有数字和字母或者是汉字
2017-08-03 12:14
3255 查看
--只含有数字和字母的
select 列名 from 表名 where REGEXP_LIKE(列名,'^([\u4e00-\u9fa5]+)$')
--只含有汉字
select 列名 from 表名 where length(列名)=length(ASCIISTR(列名))-length(replace(ASCIISTR(列名),'\',''))
说明:asciistr()函数会将字符串转换成ASCII值,如果这个字符在ASCII码表中,则转化成ASCII对应的字符;如果没有(如中文和全角字符),则转成\xxxx格式。
length()函数统计中文长度为1,lengthb()对应的一个汉字为2字节。上边的语句是在比较汉字的个数和转成ASCII值后\的个数,如若相等,则说明全是汉字。(如果想要排除全角符号的影响,则需先把字段半角,函数为 to_single_byte())。
select 列名 from 表名 where REGEXP_LIKE(列名,'^([\u4e00-\u9fa5]+)$')
--只含有汉字
select 列名 from 表名 where length(列名)=length(ASCIISTR(列名))-length(replace(ASCIISTR(列名),'\',''))
说明:asciistr()函数会将字符串转换成ASCII值,如果这个字符在ASCII码表中,则转化成ASCII对应的字符;如果没有(如中文和全角字符),则转成\xxxx格式。
length()函数统计中文长度为1,lengthb()对应的一个汉字为2字节。上边的语句是在比较汉字的个数和转成ASCII值后\的个数,如若相等,则说明全是汉字。(如果想要排除全角符号的影响,则需先把字段半角,函数为 to_single_byte())。
相关文章推荐
- 性别字段在数据库中存储数字,查询时,如何查询出数字对应的男和女?(case when的应用)
- SQL里如何查询一个字段里不是数字类型的值出来
- 数据库字段数据(昵称)排序,规则: 数字>英文字母>汉字首字母 兼容简繁体排序
- oracle如何通过sql查询VARCHAR2字段含有的单引号?
- 数据库字段数据(昵称)排序,规则: 数字>英文字母>汉字首字母 兼容简繁体排序
- SQL语句如何判断某字段是以字母开头而不是汉字开头
- 多表查询语句写法、数据库数字如何转化为汉子、Sql语句拼接
- sql查询utf-8字段中包含非汉字的记录和大小写字母转换
- 如何用SQL语句,查询数据库(日期+时间字段)中等于某一天的记录
- mysql 中如何取得汉字字段的各汉字首字母, 并根据首字母进行查询
- 项目产品化升级数据库脚本问题——如何查询两个数据库差异的库表或者数据
- SQL如何在一个数据库中查询已知列名的所在表
- java中如何判断一个字符串中含有字母或数字
- 含有汉字,数字,字母,下划线的正则表达式
- ORACLE写一函数,准确地判断字段是否含有汉字或者提取汉字等
- 【转】MySQL获取或者查询数据库字段的特定几位
- 在 sql查询中如何将两个字段显示在一个字段
- Oracle如何通过拼音模糊查询数据库表的字段(比如Name)
- 如何用T―SQL命令查询一个数据库中有哪些表?
- 【数据库SQL】查询本周本月日期或者上月日期