选择由范围
问题描述:
嗨查询我想传递两个参数,如开始和结束时选择从表中的值范围选择由范围
我怎样才能得到它呢?
例:
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
结果如果您使用谢谢
答
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
无论你的模式和规则是 - 你可以找到一个可行的查询 - 但你需要知道你的数据看起来像以及如何查询它。
你正在处理什么数据库? – 2009-08-04 08:41:48
只是为了澄清,你有2列,即'sid'和'sname',是否正确?另外,为什么sid的命名为s而不是仅仅是? –
Randell
2009-08-04 08:45:06