Я пытаюсь найти хороший способ вернуть строку 'name' из диапазона, в который попадает данное число.Диапазоны - это диапазоны 1000, поэтому первый диапазон - «0000-0999», второй - «1000-1999» и т. Д. Например, учитывая число 1234, я хочу вернуть буквальную строку '1000-1999'
.
Мне кажется, что я мог бы вести справочную таблицу с этими диапазонами, как это
--create & populate temp table with ranges
create table #ranges (st int,en int)
go
insert into #ranges values(0,999)
insert into #ranges values(1000,1999)
insert into #ranges values(2000,2999)
go
--example query
select replace(str(st,4),' ','0') + '-' + replace(str(en,4),' ','0') as TheStringIWant
from #ranges
where 1234 between st and en
... но мне кажется, что диапазоны должны быть в состоянии быть определены из самого данного числаи что мне не нужна (избыточная) справочная таблица (или, если уж на то пошло, функция) только для этого.
Мне также кажется, что я должен быть в состоянии понять это, простонемного мозгов, за исключением того, что я только что выпил 2 пива в быстрой последовательности этим вечером ...