Hei!Funkcja agregująca sql dla uzyskania listy
Jak utworzyć funkcję agregującą, aby uzyskać listę wartości zagregowanych.
podane:
key value
Andrei 1
Andrei 2
Andrei 3
Mihai 4
Mihai 5
Mihai 6
Chcę
key list
Andrei 1,2,3
Mihai 4,5,6
Hei!Funkcja agregująca sql dla uzyskania listy
Jak utworzyć funkcję agregującą, aby uzyskać listę wartości zagregowanych.
podane:
key value
Andrei 1
Andrei 2
Andrei 3
Mihai 4
Mihai 5
Mihai 6
Chcę
key list
Andrei 1,2,3
Mihai 4,5,6
Kiedyś ten artykuł raz do tej samej rzeczy:
http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/
trzeba symulować funkcji GROUP_CONCAT MySQL.
Aby uzyskać więcej informacji, sprawdź numer this article.
MS SQL rozwiązanie: [Uwaga: To rozwiązanie działa tylko na SQL 2005 i później. Oryginalne pytanie nie określiło wersji w użyciu.]
SELECT
key
, STUFF((SELECT ',' + CAST([value] AS nvarchar(max)) FROM <#Table#> WHERE (key = Results.key) FOR XML PATH ('')),1,2,'') AS NameValues
FROM <#Table#> Results
GROUP BY key
, a miłą rzeczą w tym rozwiązaniu jest to, że nie wysadza się, jeśli w podłańcuchach znajdują się niepoprawne znaki xml ... och whoops, yes does not. – briantyler
o ile widzę, wartość jest po prostu int, więc to nie będzie problem – alexsuslin
Dzisiaj jest int, jutro jest to ciąg zawierający ampersandy ... – briantyler
Podjęłam próbę utworzenia niestandardowej funkcji agregującej, takiej jak sum(). Czy to możliwe? –
Znalazłem to w twoim artykule. Dziękuję –