Лучший способ сортировки и объединения 5 столбцов - PullRequest
1 голос
/ 12 мая 2010

!!! ВНИМАНИЕ !!!

Дорогой эксперт по SQL, пожалуйста, продолжайте читать, прежде чем начать кричать. эта супер-денормализованная структура таблицы полученный после применения некоторых комбинатории-сахар на хорошо нормализованный набор данных:). Я избегаю перенормировать этот набор результатов, потому что я хочу сохранить простой полный процесс (также эти данные не будут использоваться в другом месте в приложении). (Да, Кодд. Я знаю, о чем ты думаешь).


Наличие пяти столбцов, содержащих числовые значения

 A | B | C | D | E
-------------------
 2 | 3 | 4 | 1 | 5
 3 | 6 | 1 | 5 | 4
 4 | 5 | 7 | 1 | 3

Я хочу получить объединение значений после сортировки:

   ABCDE
-----------
 1 2 3 4 5
 1 3 4 5 6
 1 3 4 5 7

Каков наилучший способ сделать это?

1 Ответ

3 голосов
/ 12 мая 2010

Если посмотреть на серьезные вопросы о том, зачем вам это нужно, это может быть достигнуто, хотя и неловко:

Select ...
    , Stuff(
            (
            Select ' ' + Z.Col
            From    (
                    Select PKCol, A As Col From Table
                    Union All Select PKCol, B From Table
                    Union All Select PKCol, C From Table
                    Union All Select PKCol, D From Table
                    Union All Select PKCol, E From Table
                    ) As Z
            Where Z.PKCol = Table.PKCol
            Order By Col
            For Xml Path('')
            ), 1, 1, '') As Combined
From Table

Очевидно, что базы данных никогда не были рассчитаны на сортировку по столбцам, поэтому решение является громоздким.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...