Stored procedures DB2在条件语句中调用存储过程
我需要查询一个存储过程,并根据该过程的结果集在条件语句中做出决策 例如,我有一个存储过程“Main_SP” 现在,如果“Main_SP”的结果为“null”,则结果应为“Tweety”,但如果结果集不为null,则应检索结果集 怎么做 我试着跟随其他人,但没有一个奏效Stored procedures DB2在条件语句中调用存储过程,stored-procedures,db2,Stored Procedures,Db2,我需要查询一个存储过程,并根据该过程的结果集在条件语句中做出决策 例如,我有一个存储过程“Main_SP” 现在,如果“Main_SP”的结果为“null”,则结果应为“Tweety”,但如果结果集不为null,则应检索结果集 怎么做 我试着跟随其他人,但没有一个奏效 SELECT case Main_SP('MyVariable') when 'null' then 'Tweety' end FROM SYSIBM.SYSDUMMY1 WI
SELECT
case Main_SP('MyVariable')
when 'null'
then 'Tweety' end
FROM SYSIBM.SYSDUMMY1 WITH UR
SELECT
case Main_SP('MyVariable')
when null
then 'Tweety' end
FROM SYSIBM.SYSDUMMY1 WITH UR
它不符合条件,在第一个命令中,即使它为“null”,也不会打印“Tweety”
在使用second时,得到的错误是“Null”在上下文中无效。我不相信您可以这样使用存储过程 存储过程可以通过两种方式返回数据
SELECT
COALESCE(Main_Fnc('MyVariable'),'Tweety')
FROM
SYSIBM.SYSDUMMY1 WITH UR
不能将存储过程作为SQL fullselect的一部分调用;您需要让调用存储过程的客户端处理此逻辑。如果必须在服务器上执行此操作,请实现一个新的存储过程,该存储过程调用
Main\u SP
本身,并包含解释结果的逻辑。…那么,您有哪一个,'null'
或null
?第一个是字符串(包含小写单词'null),第二个是没有任何值。当`like that(或equals)时,您可以比较
中的字符串,但是空值必须通过IS NULL
/IS NOT NULL
进行比较。Main\u SP
是db2中的存储过程还是UDF?@ianbjorhode存储过程。我使用了`NULL'作为示例,我的意思是要求这个比较不会在这些结果的基础上返回所需的结果,我需要在条件语句中使用select查询。。。。顺便说一句,若并没有数据值,存储过程实际上会返回字符串“null”。