自定义一个表值函数,提示“在此上下文中不能使用带有返回值的 RETURN 语句。”

ATMCash4423 2013-08-08 11:27:27

use test
go
Create function AvgResult(@scode varchar(10))--函数名与函数参数
Returns table--返回值的类型
As
Begin
Declare @avg int --声明一个变量
select @avg = CONVERT(int,@scode) --把函数参数从varchar转换成int

Return
(
select * from table3 where age = @avg
)
End



提示:
消息 178,级别 15,状态 1,过程 AvgResult,第 8 行
在此上下文中不能使用带有返回值的 RETURN 语句。

语句哪里有错误码?
...全文
438 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ATMCash4423 2013-08-08
  • 打赏
  • 举报
回复 1
引用 2 楼 wwwwgou 的回复:
--要么直接RETURN
Create function AvgResult(@scode varchar(10))--函数名与函数参数
Returns TABLE--返回值的类型
As 
Return 
(
    select * from table3 where age = CONVERT(int,@scode)
)
GO

--要么先定义table,再INSERT,最后RETURN一下
Create function AvgResult(@scode varchar(10))--函数名与函数参数
Returns @table table(age int)--返回值的类型
As 
Begin
    Declare @avg int --声明一个变量
    select @avg = CONVERT(int,@scode) --把函数参数从varchar转换成int
 
	INSERT @table 
	select age from table3 where age = @avg	--注意这儿的字段个数和类型要和定义的相对应

	RETURN 
End
太详细了,谢谢!
Shawn 2013-08-08
  • 打赏
  • 举报
回复
--要么直接RETURN
Create function AvgResult(@scode varchar(10))--函数名与函数参数
Returns TABLE--返回值的类型
As 
Return 
(
    select * from table3 where age = CONVERT(int,@scode)
)
GO

--要么先定义table,再INSERT,最后RETURN一下
Create function AvgResult(@scode varchar(10))--函数名与函数参数
Returns @table table(age int)--返回值的类型
As 
Begin
    Declare @avg int --声明一个变量
    select @avg = CONVERT(int,@scode) --把函数参数从varchar转换成int
 
	INSERT @table 
	select age from table3 where age = @avg	--注意这儿的字段个数和类型要和定义的相对应

	RETURN 
End
lzw_0736 2013-08-08
  • 打赏
  • 举报
回复

use test
go
Create function AvgResult(@scode varchar(10))--函数名与函数参数
Returns table--返回值的类型
As 
RETURN
(
 select * from table3 where age = CONVERT(int,@scode)
)

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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