编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛  
全能 ASP / PHP / ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
发新话题
打印

这句SQL改怎么写

这句SQL改怎么写

小弟请教大家这句SQL查询怎么写 [表] NAME NUM xxj 1 www 1 ooo 2 yyy 2

[上表查询得到结果] NAME NUM xxj,www 1 ooo,yyy 2

TOP

create function fmerg(@id int) returns varchar(8000) as begin declare @str varchar(8000) set @str='' select @str=@str+','+cast(pid as varchar) from 表1 where num=@id set @str=right(@str,len(@str)-1) return(@str) End go 此类的问题,请参阅本版内容。

TOP

╭∩╮︶︿︶╭∩╮鄙视他! ---打劫!!!!! 把嘴拿过来让我亲亲!

TOP

right(@str,len(@str)-1)
这个是什么呀?
要赢就赢得幸福,要输就输给追求!

TOP

明白了,我把set @str=right(@str,len(@str)-1) 去掉,才能显示出预期的结果。。。 但是又有个新的问题出现了:select @str=@str+','+cast(pid as varchar) from 表1 where num=@id cast函数是返回结果给@str,函数里面的(pid as varchar)定义了返回值的取值字符数。。如果按照上面的来写的话,返回的是,xxj, www 那么怎样才能动态的显示,得出结果 xxj,www呢? (“即使加上set @str=right(@str,len(@str)-1)这一句,也不能显示楼主所预期的结果”)
遇到帮助过你的人时,记得好好感恩,因为他是你人生的转折点。

TOP

我把select @str=@str+','+cast(pid as varchar) from 表1 where num=@id里面的cast(pid as varchar) 限制了他的显示字符的大小。。cast(pid as varchar(4)),才能得到预期的效果。。。但是如果结果中有个字符为klkljklj,那么就只能显示长度为4的字符了。。
遇到帮助过你的人时,记得好好感恩,因为他是你人生的转折点。

TOP

好像用游标机制也能解决上面的问题呀

TOP

发新话题