当前位置:首页 » 编程语言 » 查询字段值有中文的sql
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

查询字段值有中文的sql

发布时间: 2022-04-28 01:34:02

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楼说的不对