У меня есть R2 таблицу SQL Server 2008 с помощью следующей схемыДинамически порядок столбцов в SQL
DECLARE @AttributeTable TABLE
(
Code1 nvarchar(50),
Value1 nvarchar(50),
Code2 nvarchar(50),
Value2 nvarchar(50),
Stock int
);
ценности, как:
Color, Red, Size, Large, 15
Color, Blue, Size Large, 5
Size, Large, Color, Green, 4
И я ищу способ, чтобы изменить порядок столбцов для каждая строка (динамически, а не в самой таблице), так что результат запроса будет
Color, Red, Size, Large, 15
Color, Blue, Size Large, 5
Color, Green, Size, Large, 4
Но я не могу вспомнить ни одного способ сделать это, не прибегая к созданию функции .NET, которая просто кажется излишней.
Я признаю, что это неудачная архитектура, но схема принадлежит стороннему ERP, который я не могу изменить.
И, наконец, если у кого есть хорошая идея для названия для этого вопроса, пожалуйста, не стесняйтесь редактировать (или комментарий, и я буду его изменить)
EDIT:
Настоящая таблица это пример основан на использовании 6 различных пар ключ-значение вместо двух, а значение «Код» является динамическим (текущая база данных имеет около 45 различных значений кода).
Это не так уж плохо для этого, можете ли вы придумать способ, когда есть более двух пар ключ-значение и способ обработки динамических значений «Код»? – JasonRShaver
Очевидно, вы могли бы просто расширить аргументы case, чтобы обслуживать более двух пар, но это может стать громоздким. Если коды действительно динамичны, то как вы ожидаете появления окончательного результата? В алфавитном порядке? С нулями, для которых код не отображается в определенной строке? – paulbailey
Я распространил ваш ответ на более общий и разместил его ниже. Если вы отредактируете свой ответ, чтобы включить мой, я удалю свою и даю вам ответ. Спасибо, что указали, насколько просто это =) – JasonRShaver