До SQL Server 2016 вы можете использовать STUFF для объединения STRING из разных строк в одну строку / столбец с разделителем запятыми. Этот следующий скрипт вернет список значений DISTINCT согласно вашему требованию-
SELECT DISTINCT
STUFF((SELECT DISTINCT ',' + A.JobTitle FROM Employee A FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') JobTitle,
STUFF((SELECT DISTINCT ',' + A.Department FROM Employee A FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') Department,
STUFF((SELECT DISTINCT ',' + A.Position FROM Employee A FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') Position,
STUFF((SELECT DISTINCT ',' + A.[Group] FROM Employee A FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') [Group]
FROM Employee A
Если вы хотите добавить метку перед списком различных значений, используйте следующий скрипт:
SELECT
'JobTitles: ' + B.JobTitle AS JobTitle,
'Departments: ' + B.Department AS Department,
'Positions: ' + B.Position AS Position,
'Groups: ' + B.[Group] AS [Group]
FROM
(
SELECT DISTINCT
STUFF((SELECT DISTINCT ',' + A.JobTitle FROM Employee A FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') JobTitle,
STUFF((SELECT DISTINCT ',' + A.Department FROM Employee A FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') Department,
STUFF((SELECT DISTINCT ',' + A.Position FROM Employee A FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') Position,
STUFF((SELECT DISTINCT ',' + A.[Group] FROM Employee A FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') [Group]
FROM Employee A
)B