cwui 2024-07-10 18:00 采纳率: 27.8%
浏览 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 问题重发,R语言:代码运行过程中出现如下警告,请求如何解决!
  • ¥15 苍穹外卖拦截器token为null
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响