首页 新闻 会员 周边 捐助

求一表值函数?

0
悬赏园豆:5 [已解决问题] 解决于 2010-08-27 10:38

函数名:fn_GetJobContainerCntNoAndSNo

输入参数:jobno  
   
需要返回两个字段:cntNo,sealNo.

条件:
cntNO和sealNo.可以多个,可能重复,可能为空。

多个时之间用逗号隔开。不允许重复出现。


这个应该怎么样写?

请路人帮忙!!!!。

问题补充: B.pno=A.jno A表: jno na cm 1 gg xx 1 ff yy B表: pno cNo sNo 1 01 02 1 01 02 1 02 03 1 03 04 效果: cNo sNo 01,02,03/ 02,03,04 我主要是要得到这2个字段,然后在其它地方,调用取得这两个字段的表值函数。
发香已散的主页 发香已散 | 初学一级 | 园豆:4
提问于:2010-08-23 17:13
< >
分享
最佳答案
0
CREATE FUNCTION fn_ContactRowsToChar(@id int)
RETURNS varchar(
800)
AS
BEGIN DECLARE @sql varchar(
800)
SET @sql
= ''
SELECT @sql
= @sql + ',' + cast(contact_name AS varchar)
FROM cust_contact
WHERE cust_id
= @id

RETURN stuff(@sql,
1, 1, '')
END

这个是返回一个结果字符的。返回的是"a,b,c,d” 的形式。你要求的和这个差不多。就是再取一个其它的字符。然后用‘/’拼接返回。

收获园豆:5
邢少 | 专家六级 |园豆:10926 | 2010-08-25 16:32
cast(contact_name AS varchar) contact代表什么?为什么要转换?
发香已散 | 园豆:4 (初学一级) | 2010-08-25 17:56
将字段转转为varchar型的数据。如果本身字段就是字符型的就没什么用了。
邢少 | 园豆:10926 (专家六级) | 2010-08-27 08:05
问题已经解决了。。。就是一对多的关系。。把它显示出来。谢谢你。。。邢少! 我用了两个标量值函数解决的。看样子,要好好了解下自定义函数语法了。 ALTER FUNCTION [dbo].[fn_GetJobContainerCntNo] (@JobNo varchar(20)) RETURNS varchar(250) AS BEGIN DECLARE @STEMP VARCHAR(250) SELECT @STEMP=ISNULL(@STEMP+',','')+ISNULL(CNTNo,'') from (SELECT DISTINCT CNTNO FROM BIZ.JOBCONTAINER WHERE parentJOBNO=@JobNo)T RETURN @STEMP END
发香已散 | 园豆:4 (初学一级) | 2010-08-27 10:38
其他回答(2)
0

把数据贴出来吧。

清海扬波 | 园豆:825 (小虾三级) | 2010-08-23 17:17
???小白我。。什么数据?
支持(0) 反对(0) 发香已散 | 园豆:4 (初学一级) | 2010-08-23 17:19
你的原始数据,和你要的结果。
支持(0) 反对(0) 清海扬波 | 园豆:825 (小虾三级) | 2010-08-23 17:20
贴了。。
支持(0) 反对(0) 发香已散 | 园豆:4 (初学一级) | 2010-08-23 17:48
0

函数不能返回两个以上的值,请使用表变量。

邀月 | 园豆:25475 (高人七级) | 2010-08-23 19:36
??你能给出具体一点吗。。表变量是表值函数?
支持(0) 反对(0) 发香已散 | 园豆:4 (初学一级) | 2010-08-24 09:02
请高人们,花一分钟写几个字吧
支持(0) 反对(0) 发香已散 | 园豆:4 (初学一级) | 2010-08-24 10:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册