Maciej Bartosiak

Maciej Bartosiak IT CONSULTANT

Temat: MS SQL zamiana tabeli na string

Witam

wie ktoś może jak mogę zamienić dane z tabeli:

| mama |
| tata |
| dom |
| pies |

w Select'ie na |mama,tata,dom,pies|

niestety użycie kursora w tym przypadku odpada.
Krzysztof Stachyra

Krzysztof Stachyra Szef Wydziału
Produkcji Systemów
Handlowo-Magazynowyc
h i ...

Temat: MS SQL zamiana tabeli na string

poszperaj za funkcjami split/join w XMLu po stronie SQLa da się to osiągnąć.

konto usunięte

Temat: MS SQL zamiana tabeli na string

szukaj pod hasłem wm_concat dla sql servera
Grzegorz K.

Grzegorz K. Data & Analytics
Engineer

Temat: MS SQL zamiana tabeli na string

Do iteracyjnego operowania rekordami bez kursora można wykorzystać wyrażenia tablicowe CTE.
Tu zdaje się jest jakiś przykład:
http://www.mssqltips.com/sqlservertip/1520/recursive-q...

Jakimś tam pomysłem jest pokombinowanie z PIVOT , np. dodając kolumnę newID i grupować po niej wrzucając kolumnę string w funkcję agregującą np. MAX. Ale to taka rzeźba i dla większej liczby rekordów bez sensu.

Edit: Przyjrzałem się jeszcze temu co zaproponowali Krzysztof i Piotr i faktycznie wygląda to interesująco :) - sam nie testowałem, bo aktualnie nie mam jak.
http://stackoverflow.com/questions/1621747/concat-fiel...Grzegorz K. edytował(a) ten post dnia 31.12.12 o godzinie 16:59
Maciej Bartosiak

Maciej Bartosiak IT CONSULTANT

Temat: MS SQL zamiana tabeli na string

Dzięki Panowie!
Bartosz Ratajczyk

Bartosz Ratajczyk MS SQL Developer

Temat: MS SQL zamiana tabeli na string

Wersja "na kolanie"

CREATE TABLE #t (kto varchar(10))

INSERT INTO #t (kto) VALUES ('ja'), ('on'), ('ona')

SELECT STUFF((SELECT
',' + kto FROM #t
FOR XML PATH ('')
), 1, 1, '')

DROP TABLE #t

Następna dyskusja:

Ma pytanie jak w MS SQL wyl...




Wyślij zaproszenie do