Как сделать рекурсию в SQL только с помощью select? - PullRequest
0 голосов
/ 07 декабря 2011

Есть ли способ получить рекурсию в Oracle SQL, используя только операторы select?

Например, как мне суммировать столбец в таблице, не используя sum()?

Ответы [ 2 ]

2 голосов
/ 07 декабря 2011

Ответ на на этот вопрос демонстрирует рекурсию в Oracle как для рекурсивных CTE (Oracle 11 и выше), так и для собственного синтаксиса Oracle CONNECT BY (Oracle 10g и более ранних версий).

0 голосов
/ 07 декабря 2011
create table #temp (
id int,
value int)


insert into #temp values (1, 1)
insert into #temp values (2, 2)
insert into #temp values (3, 3)

declare @sum int
declare @biggest int
select @biggest = max(id) from #temp
select @sum = 0

while @biggest != 0
begin
  select @sum = @sum + value from #temp where id = @biggest
  select @biggest = @biggest - 1
end

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