[求助]在SQL语句中能否访问函数返回的一个结构?

[复制链接]
查看11 | 回复9 | 2011-12-28 08:44:39 | 显示全部楼层 |阅读模式
可能我描述的不是很清楚。
我的目的是这样的:我想通过一个函数返回一条记录(仅一条记录),它有几个字段组成。比如有id,name,desc等字段。然后我想在一个普通的SQL语句中访问这条记录。
当然这条SQL会提供这个函数一个参数的。比如:
SELECT func(id).name,func(id).desc
FROM table_name;
当然,我这里只是描述性的语言,正确的可能不是这么写的。

注:函数是通过id来查询某张表中的记录。
[ 本帖最后由 ShingU 于 2008-9-18 20:56 编辑 ]
回复

使用道具 举报

千问 | 2011-12-28 08:44:39 | 显示全部楼层
嗯,搜索了一下,这种结果应该叫做“记录”。
不知道能不能直接在SQL中访问?
回复

使用道具 举报

千问 | 2011-12-28 08:44:39 | 显示全部楼层
为什么我会有这么奇怪的要求呢?
因为我在一条SqL语句中,要通过一个id号来访问另外一张表,但是出来的记录有多条,我只需要最新的一条。
如果写一条语句中,将会十分复杂。
所以我想能不能写一个函数,然后获得我想要的那条记录呢?
因为我要访问那条记录的多个字段,而不是一个字段,所以就有这样的问题了。如果只要一个字段的话,我只要返回这个字段就行了。
---
现在还有一个比较繁琐的实现方法。写多个函数,每一个函数返回一个值。
回复

使用道具 举报

千问 | 2011-12-28 08:44:39 | 显示全部楼层
照你自己想像中的写法, func(id)要调用多次,显然是不够高效。
把你的表结构写出来看看?也许不是你想像的那么复杂。往往可以直接在SQL中实现。
回复

使用道具 举报

千问 | 2011-12-28 08:44:39 | 显示全部楼层
相信newkid
回复

使用道具 举报

千问 | 2011-12-28 08:44:39 | 显示全部楼层
LZ,可以通过一个过程,多个输出参数。
回复

使用道具 举报

千问 | 2011-12-28 08:44:39 | 显示全部楼层
原帖由 smallnavy 于 2008-9-18 23:27 发表
LZ,可以通过一个过程,多个输出参数。

这样的过程在SQL中用不了,前不久还有一个贴的。
回复

使用道具 举报

千问 | 2011-12-28 08:44:39 | 显示全部楼层
在SQL中不能用过程,
LZ,还可以考虑能不能使用子查询嵌套的方法实现。
回复

使用道具 举报

千问 | 2011-12-28 08:44:39 | 显示全部楼层
是这样的。我经常要查询用户记录表中的最新一条记录。
回复

使用道具 举报

千问 | 2011-12-28 08:44:39 | 显示全部楼层
因为会要几层嵌套,所以比较麻烦。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行