выберите запрос по диапазону - PullRequest
1 голос
/ 04 августа 2009

Привет! Я хочу выбрать значения из таблиц, передав два параметра, такие как начальный и конечный диапазоны

Как я могу получить это?

Пример:

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

Спасибо

1 Ответ

1 голос
/ 04 августа 2009

Если вы используете 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

Каким бы ни был ваш шаблон и правило - вы можете найти работающий запрос - но вам нужно знать, как выглядят ваши данные и как их запрашивать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...