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)
or: declare @b bit set @b=0 if (2>1) set @b=1 select dbo.mytest(@b)
同志们,我的调用方式是: dbo.mytest(2>1,'ok','no')
那你就这么调吧!!sql server 没有boolean类型,它永远不会认识2>1脑袋不转弯,海兄浪费感情了!
错了!
自定义函数中不能exec
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)
declare @b bit
set @b=0
if (2>1)
set @b=1
select dbo.mytest(@b)
dbo.mytest(2>1,'ok','no')