+ -
当前位置:首页 → 问答吧 → 急急急急急急急急急急急急急急!!!!!!!!查询语句

急急急急急急急急急急急急急急!!!!!!!!查询语句

时间:2011-12-14

来源:互联网

字段值
SQL code

列名
30
200
1000
2
400-500
10
500
AAA


asp 文本字段按数值类型查询。
sele * from tt where val(列名)<300
这个查询是数值时结果对
SQL code

30
200
2
10


如果吧300换成变量f,已经将f转换成INT类型

结果
SQL code

列名
30
200
1000
2
10


如何查变量时也是第一个结果。。。。。。。多谢

作者: gz5182009   发布时间: 2011-12-14

sele * from tt where val+0<300

作者: guguda2008   发布时间: 2011-12-14

SQL code

--先拆分再比较
if object_id('tb') is not null
   drop table tb
go
create table tb
(
 col1 varchar(10)
)
insert into tb
select '30' union all
select '200' union all
select '2' union all
select '400-500' union all
select '500' union all
select 'AAA'
go
select distinct(col1) from tb a cross join master..spt_values b where type='p' and number between 1 and len(col1) and substring('-'+col1,number,1)='-' and isnumeric(substring(col1,number,charindex('-',col1+'-',number)-number))=1 and substring(col1,number,charindex('-',col1+'-',number)-number)>300
/*
col1
----------
400-500
500

(2 行受影响)
*/


作者: pengxuan   发布时间: 2011-12-14

用字符比较

作者: ssp2009   发布时间: 2011-12-14

400-500应该 不是数字型吧?

作者: fredrickhu   发布时间: 2011-12-14

引用 1 楼 guguda2008 的回复:
sele * from tt where val+0<300


对吗 我是没理解LZ的意思

作者: szstephenzhou   发布时间: 2011-12-14

val Access数据库?

作者: pengxuan   发布时间: 2011-12-14

这个问题没说清楚,我来说明下。
Access数据库,asp程序,数据表tt中的字段a,a是文本类型。存储的数据
SQL code

30
200
1000
2
400-500
10
500
AAA
面议


现在想按条件查询tt表中字段a的值的数据。
sele * from tt where val(列名)<300 这条语句可以实现查询。但比较条件是一个数值(300),我想吧300换成一个变量f(f=300),并且f已经转换成int类型,但查询结果仍不对,1000也在查询结果中。
求解。。。。。。。。。。。。。。。。。。。。。。
(简单的说就是,文本字段按数值查询)

作者: gzzhang1984   发布时间: 2011-12-14

SQL code
declare f int 
set f=300
sele * from tt where val(列名)<f


行不?

作者: szstephenzhou   发布时间: 2011-12-14

大哥,不行。
第一句提示语句未结束,ASP可以这样写吗。。。。。。。。。。

作者: gzzhang1984   发布时间: 2011-12-14

asp还真没搞过;
这是SQL语法

引用 9 楼 gzzhang1984 的回复:
大哥,不行。
第一句提示语句未结束,ASP可以这样写吗。。。。。。。。。。

作者: szstephenzhou   发布时间: 2011-12-14

多谢啦!我没说清楚,我明天重新来一个。

作者: gzzhang1984   发布时间: 2011-12-14