Выберите оператор таблицы SQL 2008 - PullRequest
2 голосов
/ 20 января 2012

У меня есть таблица с 3 столбцами, представляющими матрицу:

i j val
-------
1 1  1
1 2  12
1 3  4
2 1  3
2 2  4
2 3  4
3 1  0
3 2  2
3 3  2

Как бы я выбрал эту таблицу таким образом, чтобы я получил

a1 a2 a3
-------
1 12  4
3  4  4
0  2  2

Есть ли способ использовать pivot или какой подход был бы лучшим здесь?

Ответы [ 2 ]

2 голосов
/ 20 января 2012

Я знаю, что немного опоздал на вечеринку, но не ближе ли это к тому, что вы ищете:

SELECT [1] as a1, [2] as a2, [3] as a3
FROM
(
SELECT i, j, val
FROM T) AS source
PIVOT
(
    MAX(val)
    FOR j IN ([1], [2], [3])
) as pvt

Также, эта ссылка динамически обсуждает генерацию столбцов.

Удачи!

Мэтт

1 голос
/ 20 января 2012
SELECT [1] AS a1,
       [2] AS a2,
       [3] AS a3
FROM T
PIVOT (MAX(val) FOR j IN ([1],[2],[3])) AS P
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...