关于自定义函数的问题:能不能传入逻辑表达式呢?如mytest(2>1,'ok','no')
关于自定义函数的问题:能不能传入逻辑表达式呢?如mytest(2>1,'ok','no') 问题点数:20、回复次数:12Top
1 楼pengdali()回复于 2002-12-04 08:02:59 得分 0
可以呀!
自定义函数中
create fun...(@条件 varchar(100))...
exec('select * from 表 where '+@条件)
调用
mytest('2>1','ok','no')
Top
2 楼Haiwer(海阔天空)回复于 2002-12-04 08:23:17 得分 0
pengdali(大力)
错了!
自定义函数中不能exec
Top
3 楼Haiwer(海阔天空)回复于 2002-12-04 08:27:55 得分 0
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)
Top
4 楼Haiwer(海阔天空)回复于 2002-12-04 08:30:56 得分 0
or:
declare @b bit
set @b=0
if (2>1)
set @b=1
select dbo.mytest(@b)
Top
5 楼mymmsc(热血老猫)回复于 2002-12-04 19:49:12 得分 0
同志们,我的调用方式是:
dbo.mytest(2>1,'ok','no')
Top
6 楼CCEO(CSDN的CEO)回复于 2002-12-04 20:02:12 得分 0
那你就这么调吧!!
sql server 没有boolean类型,它永远不会认识2>1
脑袋不转弯,海兄浪费感情了!Top
7 楼mymmsc(热血老猫)回复于 2002-12-06 07:09:02 得分 0
继续阿Top
8 楼mymmsc(热血老猫)回复于 2002-12-08 12:08:53 得分 0
继续讨论阿Top
9 楼pengdali()回复于 2002-12-08 12:24:27 得分 0
哦!呵呵!谢谢海兄!
你改用过程吧!Top
10 楼net_steven(素狼(W))回复于 2002-12-08 16:51:43 得分 20
用case when将条件结果转为bit型不就可以用了?Top
11 楼CoolAbu(阿卜-Never Stop(★★★★))回复于 2002-12-08 18:11:13 得分 0
说的也是,为什么非要加在函数的参数中,可以人工处理吗,;)Top
12 楼mymmsc(热血老猫)回复于 2002-12-11 22:54:39 得分 0
明白Top




