[英]SQL Query - More options and suggestions apart from pivoting
您可以使用CONCAT()函数在一行中检索单行数据
SELECT M_EMAIL,
CONCAT(FIRSTEMP, SECONDEMP, THIRDEMP, FOURTHEMP, FIFTHEMP...)
FROM 'your_table';
CONCAT()用空字符串替换NULL值。
请不要旋转,因为concat维护起来确实很丑陋(如果弹出一个比您的concat列更多的能力更强的经理并且下属更多,那么该管理器就会崩溃)。
语法取决于您使用的SQL Server。 例如,在MSSQL中,您可以这样做:
select manager, m_email, STRING_AGG(employee, ', ') as subordinates
from Employee
group by manager, m_email
无论管理器有多少个下属,此结果每个管理器只有1行,列数是固定的:
manager | m_email | subordinates
----------------------------------
A | A@A.COM | b, D
D | D@D.COM | e, h
I | I@I.COM | j
在此处播放示例: http : //sqlfiddle.com/#!18/73bb5/5
另一种选择是将相关数据查询到应用程序层并在那里进行分组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.