2015-04-03 6 views
-1

Я знаю, что есть много вопросов, вращающихся вокруг стержня, но я не мог найти ничего, что бы делало что-то похожее на то, что я пытаюсь сделать. Это может быть даже не сводная функциональность.как опираться на число строк в SQL Server 2008+

У меня есть таблица с двумя основными столбцами:

ID_no | пункты

Они настроены так:

enter image description here

Я хочу сделать это так, чтобы номера элементов в списке столбцов в порядке. Так что в основном для 000998571 мне нужны столбцы, которые должны быть перечислены как:

23456 | 31462 | 31234 | 2 | I

и каждый элемент имеет свою колонку. Я искал везде одинаковый макет, но я не могу найти что-нибудь, что сработало для моей ситуации. Любая помощь вообще оценивается.

Edit: Подробнее разъяснения по результатам я пытаюсь получить:

enter image description here

+1

возможно дубликат [SQL Server динамический запрос PIVOT?] (http://stackoverflow.com/questions/10404348/sql-server-dynamic-pivot-query) –

+1

Как вы хотите, чтобы ваш результат выглядел? –

+0

Я просто добавил несколько разъяснений для результатов, которые я ищу. Я посмотрю на эту статью и посмотрю, поможет ли она мне. – Zi0n1

ответ

1

Попробуйте это:

DECLARE @t TABLE 
    (
     ID_NO NVARCHAR(MAX) , 
     Items NVARCHAR(MAX) 
    ) 

INSERT INTO @t 
VALUES ('000998571', '23456'), 
     ('000998571', '31462'), 
     ('000998571', '31234'), 
     ('000998571', '2'), 
     ('000998571', '1'), 
     ('000998582', '10701'), 
     ('000998582', '414214'), 
     ('000998582', '75404'), 
     ('000998582', '2'), 
     ('000998582', 'A') 


SELECT ID_NO , 
     [1] AS Item1 , 
     [2] AS Item2 , 
     [3] AS Item3 , 
     [4] AS Item4 , 
     [5] AS Item5 
FROM (SELECT * , 
        ROW_NUMBER() OVER (PARTITION BY ID_NO ORDER BY Items) AS rn 
      FROM  @t 
     ) t PIVOT(MAX(Items) FOR rn IN ([1], [2], [3], [4], [5])) p 

Выход:

ID_NO  Item1 Item2 Item3 Item4 Item5 
000998571 1  2  23456 31234 31462 
000998582 10701 2  414214 75404 A 
+0

точно, что я искал ... У меня было ощущение, что мне пришлось использовать row_number в нем где-то просто не было уверенно, как ха-ха. – Zi0n1

Смежные вопросы