65.9K
CodeProject 正在变化。 阅读更多。
Home

获取逗号分隔的结果

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.18/5 (6投票s)

2007年11月15日

viewsIcon

25586

创建用于获取逗号分隔值的命令。

引言

这里有一些帮助,给那些正在等待从 Sql Server 命令获取输出的人。我们有一个名为 MyTable 的表,其中包含两个列:Dept,包含公司内所有部门的名称;以及 EmpName,包含与该部门相关联的所有员工的名称。

现在,通过存储过程,我们可以在第一列中获取所有部门名称,在第二列中获取所有员工名称,以逗号分隔。因此,通过以下代码,我们将获得相同的输出。

使用代码

我的表名是:MyTable。

列:Dept, EmpName

我的表输出如下

部门 员工姓名
软件 Emp1
软件 Emp2
软件 Emp3
Account Emp4
Account Emp5

我希望的输出如下。

部门 员工姓名
软件 Emp1, Emp2, Emp3
Account Emp4, Emp5


//
// Code is shown below
//
SET ANSI_WARNINGS OFF
Declare @ono varchar(50)
DECLARE My_Cursor CURSOR FOR
SELECT distinct Dept
FROM MyTable
drop table tmp
create table tmp(ono varchar(50),allname varchar(50))
OPEN My_Cursor
FETCH NEXT FROM My_Cursor into @ono
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @EmployeeList varchar(100)
set @EmployeeList = null
SELECT  @EmployeeList = COALESCE(@EmployeeList + ', ', '') + 
   CAST(EmpName AS varchar(5))
FROM MyTable where Dept = @ono
insert into tmp(ono,allname) values(@ono,@EmployeeList)
    FETCH NEXT FROM My_Cursor into @ono
END
CLOSE My_Cursor
DEALLOCATE My_Cursor
select * from tmp

关注点

根据您的需求进行任何更改。祝您编码愉快。

© . All rights reserved.