⑴ sql 判断字段值是否有中文
实现思路:汉字的Unicode是用“\”开始的,这个是与其它字符的区别。
sql: select * from tablename where asciistr(columnTest) like '%\%';
备注:这个asciistr就是字符转Unicode的方法,记住用法就可以了。
⑵ 为什么SQL语句不可以查询中文字段
数据库中的表字段名不能为中文。比如你的“桌号”就是表“tableuse”的一个字段,故不能为中文,你可以把表中的字段名改为“tableno”,然后把SQL语句改为String execute="delete from tableuse where tableno=\""+tableNumber+"\";"; 就行了!
⑶ SQL 查询语句有中文字段,查不到结果,如何解决
从你的“语句:select
SubCategory
from
tblSubCategory
where
MainCategory
=
'固定资产'”中来看,字段有“SubCategory
”和“MainCategory
”两个,只有字段“MainCategory
”的值是
'固定资产':是中文;
再者你所说“字段用的是繁体中文”,理解有点晕,也许你说错了吧,不如你把“固定资产"改成繁体中文“固定资产”
试试吧。。。。。快给分。。。。。。
⑷ 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);
(4)查询字段值有中文的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代替。
⑸ 现在要查询一个字段至少包括两个中文字,高分急求SQL语句,谢谢~~~
select
*
from
table
where
patindex('%[吖-座]%',字段)
>
0
--[吖-座]是中文字符集第一个到最后一个的范围
这个是判断是否有中文
⑹ mysql中如何查询出某一个字段中包含汉字的数据(只要字段中有汉字就查询出来)
myid是什么类型,是数值类型应这样写:
select * from table where saleid=2376 and myid in (2,3,4,5,6)
如果myid是字符类型,应该这样写:
select * from table where saleid=2376 and myid in ('2','3','4','5','6')
⑺ 查找字段值有中文的sql语句
select * from table1 where PATINDEX(N'%[吖-咗]%',字段) >0
或者
select * from table1 where 字段 like '%吖-咗%'
原理是使用通配符的 - 符号 使字符匹配汉字字符范围
同理 可以反其道而行 让其取非英文、标点符号的字符串,但这样通配符不好写
如果是mysql 或者其他可以使用正则表达式匹配的就很简单了
⑻ sql查询出来的结果将某字段值显示中文
先看源数据是不是中文,一般sql不会改变字段的值和类型
⑼ SQL问题,比如表中有个字段 A,它的值一般都是 数字 跟 中文 两种,如何查询出值为 中文 的记录
select*fromtablewhereISNUMERIC(column)=0--这个是查询出非纯数字的明细
如果需要找出纯中文的,那么需要用正则表达式
CREATEFunction[dbo].[RemoveNonNumericCharacters](@TempVarChar(1000))
ReturnsVarChar(1000)
AS
Begin
WhilePatIndex('%[^0-9]%',@Temp)>0
Set@Temp=Stuff(@Temp,PatIndex('%[^0-9]%',@Temp),1,'')
Return@TEmp
End
⑽ sql查询所有包含中文的数据
判断length(content)和lengthb(content)是否相等,如果不相等则包含中文,否则全英文。
length(content)计算content的字符个数,一个中文字符长度为1;
lengthb(content)计算content的字节位数,一个位长度为1,一个中文字符长度为2。
1楼说的不对