У меня есть набор данных с двумя столбцами, TransDateString и TransDate. TransdateString это просто версия NVARCHAR из Transdate, поэтому данные выглядит следующим образом:Результаты не в порядке моего запроса t-sql
TransDate | TransDateString
2011-1-4 | 1-2011
2004-6-5 | 6-2004
2010-10-14| 10-2010
2012-7-21 | 7-2012
2010-10-11| 10-2010
2012-7-5 | 7-2012
То, что я пытаюсь сделать, это получить TransDateString в переменную в порядке TransDate:
SET @cols = STUFF((
SELECT ',' + QUOTENAME(A.TransDateString) FROM
(
Select c.TransDateString,
Row_Number() Over (Partition By c.TransDateString Order By c.TransDate asc) RowNum
FROM #dataSet c
) A
Where RowNum = 1
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
Этот работает, но они не в порядке. Во время выполнения, я получаю что-то вроде @cols=[[1-2011],[10-2010],[6-2004],[7-2012]]
SQL Server 2106 имеет метод [STRING_AGG] (https://msdn.microsoft.com/en-us/library/mt790580.aspx). Какую версию SQL Server вы используете? –
SQL Server 2008 R2 больше не поддерживается. Время обновления. BTW [2016 SP1] (https://sqlperformance.com/2016/11/sql-server-2016/big-deal-sp1) содержит таблицы памяти, сжатия, индексы столбцов, разделы даже в Express Edition и LocalDb –