Znowu mam trochę problemów z implementacją metody XML PATH łączenia wielu wierszy.
Biorąc pod uwagę następujący serwer SQL temptable
:
project | NAME | display_name
-----------+------------+-------------------
a Developer Amelia
a Developer Ruby
a Administrator Olivia
b User Isla
b Developer Emily
c User Poppy
c Administrator Ava
c Administrator James
Wynik powinien być:
project | NAME | display_name
-----------+----------------+----------------
a Developer Amelia, Ruby
Administrator Olivia
b User Isla
Developer Emily
c User Poppy
Administrator Ava,James
Czy coś takiego jest nawet możliwe z XML PATH itp.?
0
happenz
19 listopad 2018, 13:16
1 odpowiedź
Najlepsza odpowiedź
Tak, możesz użyć klauzuli FOR XML PATH()
:
SELECT DISTINCT t.project, t.name, STUFF(t1.display_name, 1, 1, '') AS display_name
FROM table t CROSS APPLY
(SELECT ', '+t1.display_name
FROM table t1
WHERE t1.project = t.project AND t1.name = t.name
FOR XML PATH('')
) t1(display_name);
1
Yogesh Sharma
19 listopad 2018, 13:22
Podobne pytania
Nowe pytania
sql-server
Microsoft SQL Server to system zarządzania relacyjnymi bazami danych (RDBMS). Użyj tego tagu dla wszystkich wersji SQL Server, w tym Compact, Express, Azure, Fast-track, APS (dawniej PDW) i Azure SQL DW. Nie używaj tego tagu dla innych typów DBMS (MySQL, PostgreSQL, Oracle itp.). Nie używaj tego tagu w przypadku problemów z oprogramowaniem i programowaniem mobilnym, chyba że jest on bezpośrednio powiązany z bazą danych.