注册 登录
编程论坛 SQL Server论坛

查询英文标题

taoxinhui 发布于 2007-11-25 12:07, 1736 次点击
因为数据库里面个字段name,这个里面有中文的,也有英文,我用什么语句查出来的全是英文的,where name =麻烦各位了
16 回复
#2
purana2007-11-25 12:12
什么意思?.
比如
name
--------
中国china

这样..你想查询chinachina
这样出来?..
#3
orliubc2007-11-25 12:30
1楼的意思应该是:
字段1:中国
字段2:china
字段3:北京
字段4:beijing

只查询返回字段名为英文的列,即china,beijing

这样的话貌似没什么办法吧,只能一个个写出列名: …… where name in('china','beijing')
版主说说

[ 本帖最后由 orliubc 于 2007-11-25 12:31 编辑 ]
#4
purana2007-11-25 12:33
如果是你这个意思..当然有办法了..
#5
orliubc2007-11-25 13:34
原帖由 [bold][underline]purana[/underline][/bold] 于 2007-11-25 12:33 发表 [url=http://bbs.bc-cn.net/redirect.php?goto=findpost&pid=1113755&ptid=188227][/url]
如果是你这个意思..当然有办法了..


???  用ASCII码吗??
#6
purana2007-11-25 15:12
也可以.
#7
FFEEDD2007-11-25 15:46
不对,我感觉
楼主的意思应该是
id      NAME
1         中国
2    American
3        japan
4         韩国
只返回字段NAME中的英文名的国家
#8
taoxinhui2007-11-25 16:34
回复 5# 的帖子
写出ASCII码啊。具体例子啊。我的意思就是这个
楼主的意思应该是
id      NAME
1         中国
2    American
3        japan
4         韩国
只返回字段NAME中的英文名的国家
#9
purana2007-11-25 16:51
declare @t table(id int,Name varchar(100))
insert @t select 1,'中国'
union all select 2,'American'
union all select 3,'japan'
union all select 4,'韩国'

select * from @t where patindex('%[A-Z]%',Name)>0

/*
id          Name                                                                                                
----------- ---------
2           American
3           japan

(所影响的行数为 2 行)
*/
#10
orliubc2007-11-25 17:04
purana给出了,共同学习.
说实话,偶也刚学SQL
#11
orliubc2007-11-25 17:16
select * from @t where patindex('%[A-Z]%',Name)>0
刚反应过来,这不是ASCII做的, purana牛.   好办法,强思维哎
#12
FFEEDD2007-11-25 17:23
真强...
#13
缘吇弹2007-11-25 18:56
好用.
#14
XieLi2007-11-26 10:59
原帖由 [bold][underline]purana[/underline][/bold] 于 2007-11-25 16:51 发表 [url=http://bbs.bc-cn.net/redirect.php?goto=findpost&pid=1114056&ptid=188227][/url]
declare @t table(id int,Name varchar(100))
insert @t select 1,'中国'
union all select 2,'American'
union all select 3,'japan'
union all select 4,'韩国'

select * from @t where patindex('%[A-Z]%',Name) ...


这个例子好经典!版主就是版主.
select * from @t where NAME like '%[A-Z]%'
这样应该也可以吧.

[[italic] 本帖最后由 XieLi 于 2007-11-26 11:03 编辑 [/italic]]
#15
taoxinhui2007-11-26 12:56
回复 9# 的帖子
牛啊,谢谢了
#16
缘吇弹2007-11-26 13:01
To 妹妹:
PATINDEX ( '%[A-Z]%' , NAME )
返回英文字母字符串在表达式NAME里第一次出现的位置,起始值从1开始算。
英文字母字符串字符串在Name表达式里没找就返回0,对所有有效的文本和字符串就是有效的数据类型。
PATINDEX ( '%[A-Z]%' , NAME ) >0 的效果跟 NAME like '%[A-Z]%' 类似.

[[italic] 本帖最后由 缘吇弹 于 2007-11-26 13:05 编辑 [/italic]]
#17
baijian7102007-11-26 17:12
回复 9# 的帖子
这个patindex 用的好啊,斑竹这些都是从哪里知道的啊?
1