Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

łańcuchowy odpowiednik sumy do konkatenacji

SELECT
     p.ID PersonID,
     STUFF(
         (SELECT ';' + b.description
          FROM  personrole a 
                INNER JOIN role b
                  ON a.roleid = b.id
          WHERE a.personid = p.id
          FOR XML PATH (''))
          , 1, 1, '')  AS DescriptionList
FROM person AS p
GROUP BY p.ID

WYJŚCIE

╔══════════╦════════════════════════════╗
║ PERSONID ║      DESCRIPTIONLIST       ║
╠══════════╬════════════════════════════╣
║        1 ║ user                       ║
║        2 ║ user;admininstrator;tester ║
╚══════════╩════════════════════════════╝


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wygenerować instrukcję Drop Table dla wszystkich tabel w bazie danych — SQL Server / T-SQL Tutorial, część 48

  2. jak sprawdzić unikalność (nie powielanie) posta w kanale rss

  3. Nieprawidłowy typ parametru (numpy.int64) podczas wstawiania wierszy za pomocą executemany()

  4. Połącz więcej niż dwie tabele poziomo w SQL Server

  5. Przechowuj macierz w SQL Server 2008