选择由范围

选择由范围

问题描述:

嗨查询我想传递两个参数,如开始和结束时选择从表中的值范围选择由范围

我怎样才能得到它呢?

例:

sid  sname 

s001 name1 
s002 name2 
s003 name3 
s004 name4 
s005 name5 
s006 name6 
s007 name7 
s008 name8 
s009 name9 
s0010 name10 

在这里,我想通过像3和5的两个值,这样我的查询将返回象

s003 name3 
s004 name4 
s005 name5 

结果如果您使用谢谢

+0

你正在处理什么数据库? – 2009-08-04 08:41:48

+0

只是为了澄清,你有2列,即'sid'和'sname',是否正确?另外,为什么sid的命名为s 而不是仅仅是? – Randell 2009-08-04 08:45:06

SQL Server,假设你的列都是VARCHAR,你的“sid”列总是“s00”+数字,那么你可以这样做:

declare @value1 int 
declare @value2 int 

set @value1 = 3 
set @value2 = 5 

select 
    sid, sname 
from 
    (your table name) 
where 
    sid between 's00' + CAST(value1 AS VARCHAR(3)) AND 
       's00' + CAST(value2 as VARCHAR(3)) 

马克

UPDATE:
如果规则是,“SID”列始终只是一个单一的字母“S”(或别的东西),然后任意数量的数字(例如“S1”,“S012”,“s292929”),则该查询会做的伎俩:

declare @value1 int 
declare @value2 int 

set @value1 = 12 
set @value2 = 15 

select 
    sid, sname 
from 
    tbl2 
where 
    CAST(SUBSTRING(sid, 2, 999) AS INT) BETWEEN @value1 and @value2 

无论你的模式和规则是 - 你可以找到一个可行的查询 - 但你需要知道你的数据看起来像以及如何查询它。