[英]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.