user defined function中可以用EXEC吗?

解决方案 »

  1.   

    user defined function中不可以用EXEC,改用存储过程
      

  2.   

    但是可以用execute sp_executesql
      

  3.   

    其实,可以换个角度来看问题,你可以将你的
    set @sql1='.......'
    set @sql2='.......'
    set @sql3='.......'
    中对应的sql语句执行一遍,然后选择那些数相加。
    你的问题不是动态的去构建SQL语句:
    if case1
        select (select max(.) from ...)+(select min(...) from ...)+(select min      (...)    from ...)”
    else
        select (select max(.) from ...)+(select min(...) from ...)+(select min      (...)    from ...)”
    .
    .
    .