可以呀!
自定义函数中
create fun...(@条件 varchar(100))...
exec('select * from 表 where '+@条件)调用
mytest('2>1','ok','no')

解决方案 »

  1.   

    pengdali(大力) 
    错了!
    自定义函数中不能exec
      

  2.   

    create function mytest(@x bit)
    returns int
    as
    begin
    declare @r int
    if @x=1
               set @r= 100
            else
       set @r= -100
    return @r
    end
    go
    select dbo.mytest(case when (2>1) then 1 else 0 end)
      

  3.   

    or:
    declare @b bit
    set @b=0
    if (2>1) 
    set @b=1
    select dbo.mytest(@b)
      

  4.   

    同志们,我的调用方式是:
      dbo.mytest(2>1,'ok','no')
      

  5.   

    那你就这么调吧!!sql server 没有boolean类型,它永远不会认识2>1脑袋不转弯,海兄浪费感情了!
      

  6.   

    用case when将条件结果转为bit型不就可以用了?