如何将循环语法从Microsoft SQL Server(T-SQL)转换为Oracle SQL(PL / SQL?)

时间:2019-05-22 17:13:41

标签: sql-server oracle

我在T-SQL中创建了一条SQL语句来更新带有循环的表。现在,我需要使用Oracle,因此需要翻译查询。 问题是尽管进行搜索,但我仍然不知道它是如何工作的。

这是我在T-SQL中的立场:

DECLARE @cnt INT = -10;
WHILE @cnt < 1
BEGIN
    INSERT INTO TableA
    SELECT B_DATE, B1, isnull((
                       select A2 from TableA A 
                       where A.A1 = B.B1 and A.A_DATE = DATEADD(DAY,-1,B.B_DATE)),0) + 1 B2
    from TableB B
    where A_DATE = DATEADD(day,@cnt,cast(CURRENT_TIMESTAMP as date))

    SET @cnt = @cnt+1;
END;

上面的代码可以做到

每10天,TableA就被喂食TableB

如果他们有一天的差异,那么B2变成A2 + 1,否则B2是1

我只想对Oracle做同样的事情 我尝试使用LOOP语句,但是很显然,我们无法在循环语句中进行SQL查询吗?

0 个答案:

没有答案