自定义函数如何返回两个值

jeff0x400 2014-05-13 11:17:05
同事说自定义函数可以返回两个值,但搜了一下没找到对应的方法。还请坛友帮忙。比如我的代码:

ALTER FUNCTION [dbo].insert_coord1
(@startnum INT, @startx FLOAT, @starty FLOAT, @endnum INT, @endx FLOAT, @endy FLOAT)
RETURNS FLOAT
AS
BEGIN
-- routine body goes here, e.g.
-- SELECT 'Navicat for SQL Server'
SET @startnum = 1
SET @startx = 128.384729
SET @starty = 83.845837
SET @endnum = 51
SET @endx = 139.847212
SET @endy = 85.843872


RETURN @startx -- 此处如何能返回两个值
END

...全文
251 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeff0x400 2014-05-13
  • 打赏
  • 举报
回复
引用 2 楼 rockyljt 的回复:
建议用两个输出变量
不太明白,能举例说明吗?
---涛声依旧--- 2014-05-13
  • 打赏
  • 举报
回复
建议用两个输出变量
水族杰纶 2014-05-13
  • 打赏
  • 举报
回复
要么返回单个值 要么返回个表 如果不想返回表 就用sp output吧
jeff0x400 2014-05-13
  • 打赏
  • 举报
回复
引用 9 楼 wufeng4552 的回复:
[quote=引用 7 楼 u013555369 的回复:] [quote=引用 5 楼 dotnetstudio 的回复:] [quote=引用 3 楼 u013555369 的回复:] [quote=引用 2 楼 rockyljt 的回复:] 建议用两个输出变量
不太明白,能举例说明吗?[/quote] 那是存储过程吧,函数是返回值的,建议要么返回一个表,要么返回的值用分隔符分割[/quote] 我用存储过程实现了要求某个功能,但同事非得要我用函数,还说函数可以返回两个值。[/quote] 你应该问问他怎么返回两个的 函数分为标量函数与表值函数 标量函数返回一个,拼接可以实现你的要求,本质还是返回一个 表值函数可以返回一个表 当然你也可以把返回的两个值组成个表返回 [/quote] 嗯,明白了,谢谢。
guguda2008 2014-05-13
  • 打赏
  • 举报
回复
函数自身提供两个返回类型:单个值和单个表,前者为标题值函数,后者为表值函数。 前者只能返回单个值,可以在任何能使用列的地方使用。 后者返回单个表,可以在任何能使用表的地方使用。 没有能返回两个值的标题值函数或返回两个表的表值函数
水族杰纶 2014-05-13
  • 打赏
  • 举报
回复
引用 7 楼 u013555369 的回复:
[quote=引用 5 楼 dotnetstudio 的回复:] [quote=引用 3 楼 u013555369 的回复:] [quote=引用 2 楼 rockyljt 的回复:] 建议用两个输出变量
不太明白,能举例说明吗?[/quote] 那是存储过程吧,函数是返回值的,建议要么返回一个表,要么返回的值用分隔符分割[/quote] 我用存储过程实现了要求某个功能,但同事非得要我用函数,还说函数可以返回两个值。[/quote] 你应该问问他怎么返回两个的 函数分为标量函数与表值函数 标量函数返回一个,拼接可以实现你的要求,本质还是返回一个 表值函数可以返回一个表 当然你也可以把返回的两个值组成个表返回
jeff0x400 2014-05-13
  • 打赏
  • 举报
回复
引用 6 楼 liheyueshi 的回复:
创建一个变量 将你要返回的两个值用特殊的字符 比如+ | 等等组合 这样就只要返回一个值 读出来的时候就根据你组合的规则 分割成两个字符串
嗯,不失为一个办法。
jeff0x400 2014-05-13
  • 打赏
  • 举报
回复
引用 5 楼 dotnetstudio 的回复:
[quote=引用 3 楼 u013555369 的回复:] [quote=引用 2 楼 rockyljt 的回复:] 建议用两个输出变量
不太明白,能举例说明吗?[/quote] 那是存储过程吧,函数是返回值的,建议要么返回一个表,要么返回的值用分隔符分割[/quote] 我用存储过程实现了要求某个功能,但同事非得要我用函数,还说函数可以返回两个值。
  • 打赏
  • 举报
回复
创建一个变量 将你要返回的两个值用特殊的字符 比如+ | 等等组合 这样就只要返回一个值 读出来的时候就根据你组合的规则 分割成两个字符串
KeepSayingNo 2014-05-13
  • 打赏
  • 举报
回复
引用 3 楼 u013555369 的回复:
[quote=引用 2 楼 rockyljt 的回复:] 建议用两个输出变量
不太明白,能举例说明吗?[/quote] 那是存储过程吧,函数是返回值的,建议要么返回一个表,要么返回的值用分隔符分割
exception92 2014-05-13
  • 打赏
  • 举报
回复
把两个值 组成一个字符串 返回不就行了。

34,590

社区成员

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

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