A. sql 判断某列的数字值0-7赋上7个对应的汉字!!!
select *,case when 数字列=1 then '文字1 when 数字列=2 then '文字2 else 其它 end from golffield g where g.golffield_Delflag = 0
B. SQL 判断字段值是否有中文
实现思路:汉字的Unicode是用“\”开始的,这个是与其它字符的区别。
sql: select * from tablename where asciistr(columnTest) like '%\%';
备注:这个asciistr就是字符转Unicode的方法,记住用法就可以了。
C. 现在要查询一个字段至少包括两个中文字,高分急求SQL语句,谢谢~~~
select * from table where patindex('%[吖-座]%',字段) > 0
--[吖-座]是中文字符集第一个到最后一个的范围
这个是判断是否有中文
D. 判断一个字段少于10个汉字sql怎么写
SUBSTRING(str, pos, len)
or
SUBSTRING(str FROM pos FOR len)
str: 字段名
pos: 起始位置
len: 长度
select substring(字段名,0,10) from 表名
E. 求sql语句,怎样查询一个表中都是汉字的记录
判断每个字符是否处在中文的区间(unicode range).
如果你的数据库字符集与环境变量都是中文字符集, 可以使用一个简单的办法判断一个字段是否含有ascii7的字符, 基本上可以认为这个字段是否含有中文字符.
F. SQL中大于多少个汉字或多少个字节,并且不能出现数字怎么表示,在线等
你是要写存储过程?
还是建表的约束条件啊?
大于多少个汉字或多少个字节 比较简单, LENGTH( 列名 ) > 数字。 基本上就是长度判断了。
注:
Oracle,DB2 ,MySQL, SQLite 函数名字是 LENGTH
SQL Server 函数名字是 LEN
不能出现数字, 恐怕需要用正则表达式处理,比较方便。
这个要看你的数据库, 是什么数据库了。
因为不同的数据库, 正则表达式 的那个函数不一样的。
对于 Oracle,
使用 REGEXP_INSTR ( 列名, '[0-9]+') = 0 来实现
对于 SQL Server
使用 PATINDEX(‘%[0-9]%’, 指定字符串) = 0 来实现
G. 为什么这个表我这样写sql不能查出姓名只有两个汉字的学生信息
-- 查询姓名为两个汉字的记录
SELECT * FROM stu_student WHERE stu_name LIKE '__';
几个下划线就是几个汉字,这是字符通配符,也可以判断由几个字母组成
H. mysql查询字符串中有几个字符
length: 是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符
char_length:不管汉字还是数字或者是字母都算是一个字符
用这2个,具体看你的需求了,,,
你是要去除,?然后再看长度?
SELECT LENGTH(REPLACE('1,2,3,4',',','')),根据需求替换char_length就可以了
I. SQL中查询中间三个任意汉字
select * from 表 where 某列 like '交___税'
J. oracle sql 判断 字段是否是汉字
1、使用ASCIISTR函数判别
ASCIISTR函数说明:ASCIISTR返回字符的ASCII形式的字符串。非ASCII的字符被转化为xxxx的形式。使用ASCIISTR函数也是根据非ASCII字符会被转化这个特性来判别中文字符,只要里面包含中文字符,则必定会有xxx这样的字符。
使用 ASCIISTR(NAME_ONE) LIKE '%\%' 就能判别那些有中文的记录。如下所示:
SELECT NAME_ONE FROM TEST WHERE ASCIISTR(NAME_ONE) LIKE'%\%'
2、使用CONVERT函数判别
CONVERT函数说明:
CONVERT(inputstring,dest_charset,source_charset)
inputstring:要转换的字符串
dest_charset:目标字符集
source_charset:原字符集
3、使用函数length和lengthb来判别
使用函数length与lengthb来判别,是基于中文字符占用2~4个字节,而ASCII字符占用一个字节,那么对比LENGTH与LENGTHB就会不一样。这样就能判别字段中是否包含中文字符,但是跟ASCIISTR一样,如果里面的非ASCI字符包含非中文,它一样不能判别。依然有取巧嫌疑。
SELECT NAME_ONE FROM TEST WHERE LENGTH(NAME_ONE) != LENGTHB(NAME_ONE);
(10)sql判断有几个汉字扩展阅读
Oracle SQL编写注意事项:
1、SQL语句用大写的;因为Oracle总是先解析SQL语句,把小写的字母转换成大写的再执行。
2、数据表最好起别名;因为便于sql优化器快速分析。
3、尽量不要使用 insert into table value(?,?,?,?,?)格式,要指出具体要赋值的字段。INSERT.....SELECT的效率会有提高。
4、select与from语句之间只定义返回的字段名,除非返回所有的字段,尽量不要使用 * 。
5、select字段名应按照表的字段物理顺序编写,字段提取要按照“需多少、提多少”的原则,原因是大批量数据的抽取会影响sql缓存的效率。
6、COUNT(*)也是要避免的,因为Count(*)会对全字段做聚集。但一般的观点相反, count(*) 比count(1)稍快 , 当然如果可以通过索引检索,对索引列的计数仍旧是最快的. 例如 COUNT(EMPNO)。
7、条件中使用or 会引起全表扫描,比较影响查询效率,尽可能少用或不用,实在不行可以用UNION代替。