这个FUNCTION()哪儿有问题啊

gogocsgogodn 2006-10-27 07:46:23
比如:
CREATE FUNCTION FUN_GET_PERLIST(@filter varchar(100))
RETURNS TABLE
AS
RETURN
(
SELECT ... FROM ...
WHERE 1 = 1 + @filter
)
在程序里有的参数要判断的 条件类似于 ' and id =1 and gender=0 ' 等
这样执行试了下 select * from FUN_GET_PERLIST(' and id=1') 没有结果 在存储过程里这么做是可以的而且有结果

CREATE FUNCTION FUN_GET_PERLIST(@filter varchar(100))
RETURNS TABLE
AS
RETURN
(
SELECT ... FROM ...
WHERE id= @filter
)
select * from FUN_GET_PERLIST('1') 这样又有结果
函数的这两种传参有什么区别? 如果想要把类似于 ' and id =1 and gender=0 '这样的字符串做参数给自定义函数可不可以做到?

...全文
184 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoku 2006-10-30
  • 打赏
  • 举报
回复
函数不会执行 变量的条件
也不可以执行update 之类的操作,也不可以使用exec
vovo2000 2006-10-30
  • 打赏
  • 举报
回复
函数可用于字段,即SELECT之后
存储过程可用于结果集(表),即FROM之后
liangfei1983 2006-10-28
  • 打赏
  • 举报
回复
初学,没弄存储过程和方法的区别
gahade 2006-10-27
  • 打赏
  • 举报
回复
函数那样做不行。
改成存储过程
CREATE proc FUN_GET_PERLIST(@filter varchar(100))
AS
exec('SELECT ... FROM ... WHERE 1 = 1 '+ @filter)

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧