Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So schreiben Sie eine SQL-Abfrage, um Werte horizontal darzustellen

Marc hat Recht. Tun Sie dies nicht in SQL, tun Sie es auf Präsentationsebene. Wenn Sie dies dennoch tun möchten, schauen Sie hier:So geben Sie 1 einzelne Zeilendaten aus 2 verschiedenen Tabellen mit zurück Dynamische Inhalte in SQL

Angewendet auf Ihre Situation könnte der Code folgendermaßen lauten:

     select SpecialistName , LEFT(JobsIds, len(JobsIds)-1) as JobsIds from 
(SELECT j.SpecialistName ,

      ( SELECT cast(j1.JobsId as varchar(10)) + ','

           FROM Jobs j1

          WHERE j1.SpecialistName = j.SpecialistName

          ORDER BY JobId

            FOR XML PATH('') ) AS JobsIds
      FROM Jobs j
      GROUP BY SpecialistName )A;