Hej
Följande sql-sats ger en komma separerad lista.
DECLARE @listStr VARCHAR(MAX)
SELECT @listStr = COALESCE(@listStr+',' , '') + NumberCols
FROM NumberTable
SELECT @listStr
Men om jag skulle vilja kunna få ut denna komma separerade lista i en annan select sats hur gör jag då?
Select t.*, (Select kommasepareradlista) As lista from tabell
emissionMedlem sedan dec. 19996 721 inlägg Du får nog förklara lite mer. Vill du att de värden som ingår i den kommaseparade listan ska baseras på något i den använda tabellen?
DMBS?
Hej
DMBS = MS SQL-Server 2005
Japp jag vill att värdena ska baseras på den använda tabellen.
Exempel:
Select t.*, (Select kommasepareradlista where id = t.id) As lista from tabell
TravoniMedlem sedan okt. 20041 556 inlägg emissionMedlem sedan dec. 19996 721 inlägg För det första så måste jag å det bestämdaste avråda från att arbeta med kommaseparerade värden i databasen. I det här fallet verkar de mer handla om att plocka ut värden, och då kan det funka, men själva konkateneringen är något man gärna kan överlämna till andra lager än databasen.
COALESCE-varianten är fin, men kan inte användas i ett SELECT-kontext, eftersom den bygger på tilldelning av variabler etc. I stället får du skapa en UDF som kör COALESCE-varianten, eller (eftersom det är SQL Server 2005) så skapar du en egen aggregatfunktion med CREATE AGGREGATE.
http://msdn2.microsoft.com/en-us/library/ms182741.aspx
Okej Tack jag ska titta på detta ikväll.
Sitter upptagen med annat nu.
En annan lösning har varit att joina tabellerna och sedan plocka ihop det i C# koden när man lägger in det i klassen.
/Andreas