您好我想通过传递两个参数(如开始和结束范围
)来从表中选择值我怎么能得到它?
前:
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 :(得分:1)
如果您正在使用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))
马克
更新:
如果您的规则是“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
无论您的模式和规则是什么 - 您都可以找到有效的查询 - 但您需要知道数据的外观以及如何查询数据。