首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么区别字段中的英文和汉字

2011-12-31 
如何区别字段中的英文和汉字请大家帮我解决一下:我的表中有一个字段,其中既有英文的记录又有汉字的纪录,能

如何区别字段中的英文和汉字
请大家帮我解决一下:
我的表中有一个字段,其中既有英文的记录又有汉字的纪录,能否写一条语只将英文或汉字的记录提取出来,谢谢各位!

[解决办法]
--创建测试环境
create table #t(a varchar(20))

--插入测试数据
insert #t(a)
select 'sdfs ' union all
select '斯蒂芬 ' union all
select 'sdf斯蒂芬 '

--只有英文
select * from #t
where len(a) = datalength(a)

--只有汉字
select * from #t
where len(a)*2 = datalength(a)

--含有汉字
select * from #t
where len(a) <> datalength(a)

--删除测试环境
drop table #t

/*--测试结果
a
--------------------
sdfs

a
--------------------
斯蒂芬

(所影响的行数为 1 行)
a
--------------------
斯蒂芬
sdf斯蒂芬

(所影响的行数为 2 行)
*/
[解决办法]
SELECT * from table where PATINDEX( '%[a-z]% ',col)> 0--某字段中包含英文,想单独提出汉字用变量保存left(col,PATINDEX( '%[a-z]% '))
将剩余字符串提出再次查找英文就可以
stuff(col,1,PATINDEX( '%[a-z]% '), ' ')

[解决办法]
前提是数据类型是varchar 而不是nvarchar
[解决办法]
select * from table where col like '%[a-z]% '
中文的not like
试试看
[解决办法]
楼上好像要是字母为全角的就有问题!

热点排行