Здравствуйте, IB, Вы писали:
IB>Тем не менее, можно извернуться и на SQL пользуясь особенностями конкретной реализации.
Никаких конкретных реализаций. CTE наше всё.
create table #names
(
Name nvarchar(10),
Count int
)
insert into #names (Name, Count)
values
(N'вася', 2),
(N'петя', 3);
create table #names2
(
ID int identity,
Name nvarchar(10)
);
with cte (name,[count])
as
(
select * from #names
union all
select name, [count] - 1 as [count]
from cte
where [count] > 1
)
insert into #names2 (name)
select name
from cte
order by name
select * from #names
select * from #names2
drop table #names
drop table #names2