Выбор 3 строки в 3 столбца в SQL Server - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь выбрать 3 строки в 3 столбца, но я получаю значения NULL.

Вот мой код:

 SELECT * FROM
 (
   SELECT t_k
   FROM m_t_k 
   WHERE p_id = 5 and t_k_id in (1,2,7)
 ) src
 PIVOT(
   MAX()
   for t_k in ([1],[2],[3])
 ) piv

это результат запросабез PIVOT, и я хочу, чтобы эти строки были в 3 столбцах

enter image description here

1 Ответ

2 голосов
/ 11 июня 2019

Вы можете использовать ROW_NUMBER и кросс-таблицу для достижения этой цели. Это предположение, основанное на запросе и изображении, которое у нас есть, поэтому оно не проверено:

SELECT MAX(CASE WHEN RN = 1 THEN sq.term_key END) AS term_key1,
       MAX(CASE WHEN RN = 2 THEN sq.term_key END) AS term_key2,
       MAX(CASE WHEN RN = 3 THEN sq.term_key END) AS term_key3
FROM (SELECT term_key,
             ROW_NUMBER() OVER (ORDER BY term_key) AS RN
      FROM mpos_term_key
      WHERE profile_id = 5
        AND term_keys_type_id IN (1, 2, 7)) sq;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...