如上图,表TAB1 , ID = 123 找到 ID_F = 456
同一个表,把456带入ID , 找到 ID_F = 789,
以此类推,最后902找不到对应 ID_F,则结束查找。查找的过程,可能需要查找1次,也可能100次
即输入123,得到结果902
用SAP HANA SQL Script 怎么写
如上图,表TAB1 , ID = 123 找到 ID_F = 456
同一个表,把456带入ID , 找到 ID_F = 789,
以此类推,最后902找不到对应 ID_F,则结束查找。查找的过程,可能需要查找1次,也可能100次
即输入123,得到结果902
用SAP HANA SQL Script 怎么写
-- 创建递归过程
CREATE PROCEDURE FindFinalID (
IN start_id INTEGER,
OUT final_id INTEGER
)
LANGUAGE SQLSCRIPT
AS
BEGIN
DECLARE current_id INTEGER;
DECLARE next_id INTEGER;
-- 初始化当前ID为起始ID
SET current_id = :start_id;
-- 循环查找,直到找不到对应的ID_F
WHILE TRUE DO
-- 查找当前ID对应的ID_F
SELECT ID_F INTO next_id
FROM TAB1
WHERE ID = :current_id;
-- 如果找不到匹配的ID_F,退出循环
IF next_id IS NULL THEN
LEAVE;
END IF;
-- 更新当前ID为找到的ID_F,继续下一轮查找
SET current_id = next_id;
END WHILE;
-- 输出最终找到的ID
final_id := current_id;
END;
使用方法:CALL FindFinalID(123,?)