Stored procedures 需要teradata中的递归查询和存储过程
我将下面的excel存储在一个表中,在这个表中,我需要使用tera数据存储过程和tera数据中的递归函数来搜索一些模式。我已经写了一个查询,但它是一个无休止的循环。请帮我做这个Stored procedures 需要teradata中的递归查询和存储过程,stored-procedures,while-loop,teradata,teradata-sql-assistant,Stored Procedures,While Loop,Teradata,Teradata Sql Assistant,我将下面的excel存储在一个表中,在这个表中,我需要使用tera数据存储过程和tera数据中的递归函数来搜索一些模式。我已经写了一个查询,但它是一个无休止的循环。请帮我做这个 Fruit_name Type Schedule Orange Equal to Banana pineapple Equal to Straberry Banana Equal to
Fruit_name Type Schedule
Orange Equal to Banana
pineapple Equal to Straberry
Banana Equal to Lichi
Lichi direct pineapple
因此,我将编写的脚本基本上从FROUTNAME=Orange开始,检查列类型是否有直接值,如果没有第三列,即schedule中的任何值都将在FROUT name中再次检查,即banana将b第二次检查FROUT_name列,循环将继续,直到列2有一个值价值观“直接”。因此,在上面的例子中,循环将运行3次,当水果是荔枝时,循环停止。因为lichi的类型是direct,循环结束
下面是我写的程序
请帮我做这个
CREATE PROCEDURE fruit_name(OUT VAR5 Varchar(20))
BEGIN
DECLARE VAR_TYPE VARCHAR (20);
DECLARE VAR_TYPE1 VARCHAR (20);
DECLARE VAR_SCHEDULE VARCHAR (20);
select type into VAR_TYPE from test_table where fruit_name='Orange';
select SCHEDULE into VAR_SCHEDULE from test_table where fruit_name='Orange';
while(Type<>'Direct') do
BEGIN
select type into VAR_TYPE from test_table where fruie_name=VAR_SCHEDULE;
select schedule into VAR_TYPE1 from TSSC10W.test_table where
fruit_name=VAR_SCHEDULE;
set VAR_SCHEDULE=VAR_TYPE1;
END;
END while;
set VAR5=VAR_SCHEDULE;
END;
创建过程名称(OUT VAR5 Varchar(20))
开始
声明varu类型VARCHAR(20);
声明VAR_TYPE1 VARCHAR(20);
声明VAR_附表VARCHAR(20);
从test_表中选择type到VAR_type,其中fruit_name='Orange';
从test_表中选择计划进入VAR_计划,其中fruit_name='Orange';
while(键入'Direct')do
开始
从test_表中选择type into VAR_type,其中fruie_name=VAR_SCHEDULE;
从TSSC10W.test_表中选择VAR_类型1中的计划,其中
水果名称=变量表;
设置变量计划=变量类型1;
结束;
结束时;
设置VAR5=VAR_计划;
结束;
我也需要使用递归函数编写相同的循环
帮助欣赏您当前的逻辑是正确的,可能有一些坏数据…我写的逻辑在无休止的循环中,这就是我没有得到任何O/PAgain的原因,您的逻辑正确地遍历了数据,但一定有一些坏数据,要么没有最终的
'Direct'
,要么有一个类似orange->banana->lichi->orange
的反向引用。您好,您能帮我在递归函数中更改它吗?对于递归,您需要知道从哪里开始,即您需要一个种子查询,返回第一级orange
。