在 SQL Server 2000 中查找特定于部门的员工
假设我有一个表 (tblEmp),其结构如下所示
Dept Emp
----- ------
d1 e1
d1 e2
d1 e3
d2 e4
d2 e5
d3 e6
如果我需要带来输出,因为
Dept DepartmentSpecificEmployees
------ ----------------------------
d1 e1,e2,e3
d2 e4,e5
d3 e6
我会将查询编写为
select
Dept,
stuff((select ',' + Emp from tblEmp t2 where t1.Dept = t2.Dept for xml path(''),1,1,'')DepartmentSpecificEmployees
from
tblEmp t1
group by
Dept
但这将在 SQL Server 2005+ 中工作。
如何在没有任何变量声明、循环或游标的情况下在 SQL Server 2000 中实现相同的效果?
如果我使用 COALESCE 作为替代方案,那么我需要使用一个变量,这将达不到目的
请帮助
Suppose I have a table (tblEmp) whose structure is like as under
Dept Emp
----- ------
d1 e1
d1 e2
d1 e3
d2 e4
d2 e5
d3 e6
If I need to bring the output as
Dept DepartmentSpecificEmployees
------ ----------------------------
d1 e1,e2,e3
d2 e4,e5
d3 e6
I will write the query as
select
Dept,
stuff((select ',' + Emp from tblEmp t2 where t1.Dept = t2.Dept for xml path(''),1,1,'')DepartmentSpecificEmployees
from
tblEmp t1
group by
Dept
But this will work in SQL Server 2005+.
How can I achieve the same in SQL Server 2000 without any variable declaration or loop or cursor?
If I use COALESCE as an alternative, then I need to use a variable which will defeat the purpose
Please help
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 SQL Server 2000 中,如果不在 SELECT 中使用标量用户定义函数就无法实现这一点。这个 udf 将有一个局部变量(正如你所提到的)并连接每个分组
或者在客户端中执行
You can't in SQL Server 2000 without using a scalar user defined function in the SELECT. This udf will have a local variable (as you have mentioned) and concats each grouping
Or do it in the client