Próbuję przenieść aplikację opartą na MySQL do wersji Microsoft SQL Server 2005 (nie z wyboru, ale takie jest życie).Symulacja funkcji MySQL group_concat w Microsoft SQL Server 2005?
W oryginalnej aplikacji użyliśmy prawie całkowicie zgodnych z ANSI-SQL stwierdzeń, z jednym znaczącym wyjątkiem - dość często używaliśmy funkcji MySQL o group_concat
.
group_concat
, nawiasem mówiąc, to robi: podany tabelę, powiedzmy, nazw i projektów pracowniczych ...
SELECT empName, projID FROM project_members;
Powroty:
ANDY | A100
ANDY | B391
ANDY | X010
TOM | A100
TOM | A510
... i oto co uzyskać z GROUP_CONCAT:
SELECT
empName, group_concat(projID SEPARATOR '/')
FROM
project_members
GROUP BY
empName;
powraca:
ANDY | A100/B391/X010
TOM | A100/A510
To, co chciałbym wiedzieć, to: Czy można napisać, powiedzmy, funkcję zdefiniowaną przez użytkownika w SQL Server, która emuluje funkcjonalność group_concat
?
mam prawie żadnego doświadczenia przy użyciu UDF, procedur przechowywanych, lub coś podobnego, tylko prosto-up SQL, więc proszę zaważyć na zbyt wielu wyjaśnień :)
Kilka przydatnych linków: http://www.postgresonline.com/journal/archives/191-stringagg.html i http://consultingblogs.emc.com/jamiethomson/archive/2009/07/16/string -aggregation-in-t-sql-amp-pl-sql.aspx – bernhof
możliwy duplikat [Jak utworzyć rozdzielaną przecinkami listę używając zapytania SQL?] (http://stackoverflow.com/questions/1817985/how -do-i-create-a-comma-list-list-using-a-sql-query) - ten post jest szerszy, więc wybrałbym ten jeden jako kanoniczny – TMS
możliwy duplikat funkcji [SQL group \ _concat w SQL Server] (http://stackoverflow.com/questions/8868604/sql-group-concat-function-in-sql-server) – Trikaldarshi