Stránka 1 z 1
MSSQL vrácení hodnot jednoho řádku jako string
Napsal: stř 16. lis 2016, 15:47
od dark_stuff
MSSQL 2012
Nezná někdo způsob, jak výsledek dotazu
převést do formátu <Col1Value>, <Col2Value>, ... , <ColnValue>, tedy string hodnot všech sloupců? Spokojil bych se i s tím, že výsledek dostanu do jednoho sloupce tak, že co řádek, to jedna hodnota (unpivot?).
Předem neznám počet sloupců ani jejich názvy, pracuju tedy jen s *.
Re: MSSQL vrácení hodnot jednoho řádku jako string
Napsal: stř 16. lis 2016, 20:45
od mlrs
zalezi - co tohle: //kdyztak napis podrobnej
Kód: Vybrat vše
CREATE TABLE #priklad
(
RowID INT PRIMARY KEY
,Txt VARCHAR(MAX)
)
INSERT INTO #priklad
(RowID,Txt)
SELECT 1,'A1'
UNION SELECT 2,'A2'
UNION SELECT 3,'A3'
UNION SELECT 4,'A4'
UNION SELECT 5,'A5'
UNION SELECT 6,'A6'
UNION SELECT 7,'A7'
UNION SELECT 8,'A8'
select * from #priklad
--pres CTE -> samozrejme muzes dat carku do pryc...
;WITH CTE_priklad AS
(
SELECT RowID,
Txt
FROM #priklad
WHERE RowID = 1
UNION ALL
SELECT #priklad.RowID
,CTE_priklad.Txt + ',' + #priklad.Txt
FROM CTE_priklad
JOIN #priklad
ON #priklad.RowID = CTE_priklad.RowID + 1
)
SELECT Txt
FROM CTE_priklad
WHERE RowID = (SELECT MAX(RowID) FROM #priklad)
--staticky
SELECT [1]+','+[2]+','+[3]+','+[4]+','+[5]+','+[6]+','+[7]+','+[8] AS Txt
FROM (SELECT 'Total' AS AC,[1],[2],[3],[4],[5],[6],[7],[8]
FROM
(SELECT RowID,Txt FROM #priklad) AS B
PIVOT (MAX(Txt) FOR RowID IN ([1],[2],[3],[4],[5],[6],[7],[8])
) AS A
) AS C
Re: MSSQL vrácení hodnot jednoho řádku jako string
Napsal: pát 18. lis 2016, 11:12
od dark_stuff
Možná jsem to popsal špatně.
Kód: Vybrat vše
Id | Col1 | Col2
-----------------
1 | A | B
2 | C | D
A jako výsledek nějakého selectu (where Id = 1):
Nebo
Kód: Vybrat vše
ColName | Value
-------------------
Id | 1
Col1 | A
Col2 | B
A to s tím, že předem neznám, jaké všechny sloupce tabulka obsahuje (jen vím, že má sloupec Id).
Re: MSSQL vrácení hodnot jednoho řádku jako string
Napsal: pát 18. lis 2016, 11:27
od Zivan
Neco takoveho?
http://stackoverflow.com/questions/1054 ... sql-server
Na SQL serveru mi "
SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('<nazev_tabulky>')" vraci jmena sloupcu v dane tabulce.
Re: MSSQL vrácení hodnot jednoho řádku jako string
Napsal: úte 7. úno 2017, 16:27
od marek16