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

求助:如何实现数字型字段的模糊查询?

hyhhd 发布于 2007-12-08 19:00, 4590 次点击
各位大侠:如何实现数字型字段的模糊查询?急!!!!!!!
18 回复
#2
hyhhd2007-12-08 19:09
是不是只有字符型字段才能模糊查询?
#3
purana2007-12-08 19:27
转换一下类型行不?.

select * from tb where cast(colname as varchar) like '10%'
#4
hyhhd2007-12-09 18:10
谢谢!转化不行啊!比如:字段为“额定转速”为duoble,那么在模糊查询时,当输入“1”时,则马上动态查询出字段中包含数字“1”的记录。我是希望这样。
#5
hyhhd2007-12-09 18:11
还有,我觉得转化就降低了速度。
#6
purana2007-12-09 18:31
declare @t table(id int identity,col decimal(18,2))
insert @t(col) values(145698741.13)
insert @t(col) values(325698741.46)
insert @t(col) values(564561212.5)


select * from @t where cast(col as varchar) like '14%'

/*
id          col                  
----------- --------------------
1           145698741.13
*/
#7
purana2007-12-09 18:32
declare @t table(id int identity,col decimal(18,2))
insert @t(col) values(145698741.13)
insert @t(col) values(325698741.46)
insert @t(col) values(564561212.5)


select * from @t where col like '14%'

/*
id          col                  
----------- --------------------
1           145698741.13
*/
#8
purana2007-12-09 18:33
declare @t table(id int identity,col decimal(18,2))
insert @t(col) values(145698741.13)
insert @t(col) values(325698741.46)
insert @t(col) values(564561212.5)


select * from @t where patindex('14%',cast(col as varchar))>0

/*
id          col                  
----------- --------------------
1           145698741.13

(所影响的行数为 1 行)
*/
#9
hyhhd2007-12-09 18:50
忘了说一点,我使用的是access,我是菜鸟一个。如果实在不行,我只有把表字段类型改成字符型算了。谢谢!
#10
purana2007-12-09 18:56
access跑到来sqlserver?
#11
hyhhd2007-12-09 19:30
我想access和sqlserver应该是相同的!别介意!
#12
hyhhd2007-12-09 19:33
况且我是在vb中使用SQL语句来控制access,那跑到sqlserver也没有一点错啊!哎呀,学习和学问是不分派别的,关键解决问题。
#13
purana2007-12-09 19:37
sqlserver使用的是t-sql
access使用的是jet-sql
两者差别比较大.

vb去控制当然没有问题了..
问题在于sql语句..每个商业数据库.都各自在sql标准上定制自己的sql语言.所以不同产品.sql语句是不同的.
#14
happybaby402007-12-09 19:43
请问一下"什么是模糊查询啊"?
#15
hyhhd2007-12-09 19:48
我想是不是“精确查找”的not吧!
#16
happybaby402007-12-09 19:53
declare @t table(id int identity,col decimal(18,2))      //声明这个表
insert @t(col) values(145698741.13)                     //向表中插入数据
insert @t(col) values(325698741.46)                     //向表中插入数据
insert @t(col) values(564561212.5)                      //向表中插入数据


select * from @t where cast(col as varchar) like '14%'    这条是怎么说的啊?

/*
id          col                  
----------- --------------------
1           145698741.13
*/
我解释上面的语句对不?
#17
madpbpl2007-12-10 00:37
原帖由 [bold][underline]hyhhd[/underline][/bold] 于 2007-12-9 18:10 发表 [url=http://bbs.bc-cn.net/redirect.php?goto=findpost&pid=1139895&ptid=191229][/url]
谢谢!转化不行啊!比如:字段为“额定转速”为duoble,那么在模糊查询时,当输入“1”时,则马上动态查询出字段中包含数字“1”的记录。我是希望这样。 ...

sql server 有double类型吗?

楼主这个问题最好发到asp版块去
sql ="select * from [tablename] where 额定转速 like '%1%' "
楼主试试这个。
#18
hyhhd2007-12-11 12:53
我能试的都试了。
#19
hyhhd2007-12-11 12:54
我准备去找找jet-sql。
1