首页 文章

SELECT和FUNCTION调用之间的查询行为不同

提问于
浏览
0

背景

为SQL语句创建包装函数 .

问题

函数返回1行,而函数所基于的查询返回100行 . 参数值相同:

SELECT * FROM as_rpt.tasc_fsa( 'ABC', '2010-01-01'::date, '2011-01-01'::date );

tasc_fsa 函数是一个带有几个表连接的SELECT语句;函数语言是'sql'而不是'plpgsql' .

问题

函数返回单行的原因是什么,但是当没有通过函数调用时,函数使用的完全相同的查询正确返回超过100行?

任何想法都会有所帮助 .

谢谢!

2 回答

  • 3

    你使用RETURN SETOF ......?

    SETOF表示您想要返回超过1行 .

    我很确定你忘了使用'RETURN SETOF' .

  • 0

    你提到了“加入几个表”的功能 . 你的例子显然没有 . 如果正在执行连接,则可能导致较少的结果 .

    解释日期的方式是另一种可能性 . 当你得到1个答案时,它是否在你指定的范围内?

相关问题