易截截图软件、单文件、免安装、纯绿色、仅160KB

这个sql语句怎么写?

我想用一个sql语句将返回的多行记录自动生成一个用逗号隔开的字符串,比如
select usernum from tbusers 会返回5行,我希望能够自动生成字符串 1,2,3,4,5
能够用sql语句直接写么
SQL code:
create FUNCTION stTable
(
@id varchar(32)
)
RETURNS @st TABLE (id varchar(8000))
begin
declare @sql as varchar(8000);
set @sql=''
select @sql=@sql+','+objid2+''
from (select distinct objid2 from dbo.refobjlink where objid1=@id and
linktype='project3') b
set @sql=substring(@sql,2,len(@sql))
insert into @st values(@sql)
return
end
GO

update project set numbers=t.id
from project
CROSS APPLY stTable(project.id) t
GO


结果是:

原有多行的数据:
1
2
3
4
5
转化为一列的数据:
1,2,3,4,5


本来想帮个忙了的,这个不是很懂。学习了 。。。。呵呵,要是在程序里还好实现。

用一楼的函数就可以实现的


SQL code:

--2005直接用XMl

select stuff((select ','+rtrim(number) from spt_values where t.type=type and number<6 for xml path('')),1,1,'')
from spt_values t where type='p'
group by type

/*

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------


相关问答:

Asp+sql server问题 - Web 开发 / ASP

我一个项目,有个插入操作,具体是这样的:
我有进货信息表。在出货时选择相应的进货信息,输入数量,选择部门后,点保存按钮,由于网络延时,点一下没有反映,于是用户就又点一下,导致一次插入了两条记录:
例: ......

sql性能求助 - MS-SQL Server / 疑难问题

场景如下:
客户把备份好的数据库,发给我,我在本机还原后,运行写好的存储过程,比较快,并且在实施那边运行同样比较快。但是当实施在客户那边运行的时候速度就非常的慢,时间超出了程序的时间限制。远程在客户那 ......

SQL如何优化问题 - MS-SQL Server / 疑难问题

今天做了一个存储过程   环境是SQL2000数据库  
大致如下
建立临时表
定义员工游标
        循环员工(属于1个公司)  
        ......

如何使用MySQL - MS-SQL Server / 基础类

刚刚接触MySQL,不知道该如何去查看数据,插入数据,创建数据库、表,用哪为前辈能指教一二?

MySQL 5.1参考手册

引用
兄弟你会结贴吗?
mysql 参考手册

baidu

MySQL官方文档 http://dev.mysql.com/doc ......

关于SQL Server Mobile Edition - .NET技术 / ASP.NET

关于SQL Server Mobile Edition
用Microsoft SQL Server2005 Management Studio Express9.00.3042.00创建SQLCE数据库sqlmobile.sdf
在mobile系统终端上用SQL Server Mobile Edition3.0能查看sqlmobile.sdf里表数据 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号