获取逗号分隔的结果






1.18/5 (6投票s)
2007年11月15日

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
关注点
根据您的需求进行任何更改。祝您编码愉快。