|
因为,需要查询数据库里面的一些涨数据,要求字段内容只能包含汉字、字母、数字,不能包含特殊符号(特殊数据除外)
首先看下效果,如下:
参考资料:
数据库sql如何查询某个字段只含有数字和字母或者是汉字
-只含有数字和字母的
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())。
sqlserver2008r2查找非中文字母数字出现的第一个位置
环境:
测试数据库sqlserver2008r2,排序规则Chinese_PRC_CI_AS,其它环境没有试过
语句
返回值:4
我的解决方案
(完)
|
上一篇:有奖调查问卷,你是如何知道本站的?下一篇:修改成自己的网关,内网外网 同时上 前提是有两个网卡
|