У меня возникла проблема с построением запроса. После поиска в stackoverflow я думаю, что мне нужна кросс-таблица. Но я не знаю, что именно это. Я думаю, что это будет быстрее, если я покажу вам упрощенную версию моей проблемы. Я был бы рад, если бы вы могли указать мне в правильном направлении.SQLSERVER Выбор строк в виде столбцов, даже если строк недостаточно.
Это пример данных:
ColumnIDToGroup Value
-----------------------
1 AAAA
1 BBBB
2 AAAA
2 BBBB
2 CCCC
Мне нужно создать запрос, чтобы получить данные в этом формате:
ColumnIDToGroup Value1 Value2 Value3 Value4 Value5
------------------------------------------------------------
1 AAAA BBBB 'Empty' 'Empty' 'Empty'
2 AAAA BBBB CCCC 'Empty' 'Empty'
Как workarround, я мог бы принять этот вывод, если он просто построить (если значение не равно нулю, то всегда имеют одинаковый размер)
ColumnIDToGroup ValueConcat
-------------------------------------
1 AAAABBBB************
2 AAAABBBBCCCC********
Не стесняйтесь просить о каких-либо изменений. @Rumpel –
Прежде всего спасибо за помощь. Единственная проблема, которую я вижу там, - это UNION. Идея этого заключается в том, чтобы создать представление или хранимую процедуру, чтобы проконсультироваться с данными простейшим способом. Я не знаю данные в таблице #TEMP, потому что он изменяется. Приложение позади этого постоянно вставляет, обновляя удаление строк. Поэтому я не знаю, как построить объединение динамически. Я имею в виду, если я использую ваш код в процедуре хранилища, например, и после этого я вставляю одну строку (например: ID: 1, значение: CCCC). Я получаю 2 строки с одинаковым значением en COL. (продолжение в следующем комментарии) – Rumpelstinsk
Также, если я удалю одну строку (например, ID: 1, значение: AAAA), у меня не будет COL с Value1. Однако я вижу эту идею, я думаю, что благодаря вам я мог бы решить эту последнюю проблему самостоятельно: D – Rumpelstinsk