cwui 2024-07-10 18:00 采纳率: 23.5%
浏览 21
已结题

输入一个值,直到没有对应的值为止

img

如上图,表TAB1 , ID = 123 找到 ID_F = 456
同一个表,把456带入ID , 找到 ID_F = 789,
以此类推,最后902找不到对应 ID_F,则结束查找。查找的过程,可能需要查找1次,也可能100次
即输入123,得到结果902

用SAP HANA SQL Script 怎么写

  • 写回答

27条回答 默认 最新

  • 众众编程 2024-07-13 03:09
    关注
    -- 创建递归过程
    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,?)

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月15日
  • 创建了问题 7月10日

悬赏问题

  • ¥15 咨询一下有关于王者荣耀赢藏战绩
  • ¥100 求购一套带接口实现实习自动签到打卡
  • ¥50 MacOS 使用虚拟机安装k8s
  • ¥500 亚马逊 COOKIE我如何才能实现 登录一个亚马逊账户 下发新 COOKIE ..我使用下发新COOKIE 导入ADS 指纹浏览器登录,我把账户密码 修改过后,原来下发新COOKIE 不会失效的方式
  • ¥20 玩游戏gpu和cpu利用率特别低,玩游戏卡顿
  • ¥25 oracle中的正则匹配
  • ¥15 关于#vscode#的问题:把软件卸载不会再出现蓝屏
  • ¥15 vimplus出现的错误
  • ¥15 usb无线网卡转typec口
  • ¥30 怎么使用AVL fire ESE软件自带的优化模式来优化设计Soot和NOx?