有这样一条SQL
 Select   Get_Costtaxrate(col1), Get_Tcostvalue(col1)   From a
 
其中Get_Costtaxrate、Get_Tcostvalue都是函数,这两个函数里面都是查找一个大表,Get_Tcostvalue还需要调用Get_Costtaxrate
来进行计算,可以将两个函数合并成一个函数吗?
或者有没有高效一点的方式,感觉这样效率不高

解决方案 »

  1.   

    准确来说应该是三个函数,
    Function A(out p1,out p2)Function B
     调用 A
     返回 P1Function C
     调用 A
     返回 P1与P2的计算值
    要是能够在select 里取得函数的两个返回值就好了
    我就可以这样写
    select P1,P1与P2的运算
    from 
    (
       select A(P1,P2) from Tab1
    )
    不知道可以这样做不
      

  2.   

    你这个语句我不知道可行不,但思路完全可以啊。PLSQL里完全可以赋值给变量嘛
      

  3.   

    可以合并,你加个参数,Function A(out p1,out p2, arg In varchar2)
    当arg 是'B'的时候返回取P1,是'C'的时候 返回P2=P1与P2的计算
      

  4.   

    首先,不是在Pl/SQL里,而是一条SQL里面,所以不能考虑赋值变量的方式
    其次,现在不是合并与否的问题,而是希望减少调用2次A 函数的影响。
      

  5.   

    这个也能合并啊?不会吧..但是函数只能返回一个数值啊.
    不能在SQL实现的.