если количество не велико (точнее разумно) можно симулировать таблицу с возрастающими значениями на основе union и left join
p.s. это адский быдлокод но я помню делал такую вьюху
create view digits (a) as select 0 as a union
select 1 union
select 2 union
select 3 union
select 4 union
select 5 union
select 6 union
select 7 union
select 8 union
select 9
соответственно дальше можно написать такой запрос
select x.a+y.a*10+z.a*100 from digits x,digits y,digits z
количество указаний digits во from в нем определит максимальное количество значений (в данном случае 1000) как степень 10
Можно создать из этого ее вьюху, и на ее основе уже оперировать степенями 1000
у тебя будет виртуальная таблица с нужным количеством записей, ты можешь фильтровать их по значению и формировать на ее основе свои insert