2016-06-27 3 views
-4

Преобразовать два столбца для строк в SQL ServerКак показать два столбца в виде строк в SQL Server?

enter image description here

+4

Добро пожаловать в StackOverflow. Пожалуйста, прочитайте [ask]. –

+1

Просто используйте Pivot для преобразования строк в столбцы – Jesus

+0

Возможный дубликат [сводной таблицы SQL Server с несколькими агрегатами столбцов] (http://stackoverflow.com/questions/14694691/sql-server-pivot-table-with-multiple-column- агрегаты) –

ответ

0

от простого креста Нанести

DECLARE @Table1 TABLE 
    (ID int,installdate varchar(20),uninstalldate varchar(20)) 
; 

INSERT INTO @Table1 
    (ID,installdate,uninstalldate) 
VALUES 
    (1,'15/06/2016','18/06/2016'), 
    (2,'20/06/2016','25/06/2016') 

Сценарий:

select COL AS [Instal OR Uninstall],VAL AS [Date] from @Table1 
     CROSS APPLY 
    (VALUES 
    ('installdate',installdate), 
    ('uninstalldate',installdate)) 
    CS(COL,VAL) 
0

Простой UNPIVOT должен сделать вещь:

SELECT [DATES], 
     [VALUES] 
FROM MyTable 
UNPIVOT (
    [VALUES] FOR [DATES] IN (InstallDate,UnInstallDate) 
) as unpvt 

Выход:

DATES   VALUES 
InstallDate  2016-06-15 
UnInstallDate 2016-06-18 
InstallDate  2016-06-20 
UnInstallDate 2016-06-25 
+0

спасибо. это действительно приятно работать. – Rohit

+0

Мое удовольствие! Если ответ (ы) были полезны, не стесняйтесь их повышать/принимать :) Это лучший способ сказать * спасибо * здесь :) – gofr1

0

Вы можете UNPIVOT столбцы в строки:

DECLARE @Data TABLE (
    Id INT, 
    InstallDate DATE, 
    UnInstallDate DATE 
) 
INSERT @Data VALUES (1,'6/15/2016', '6/18/2016'),(2,'6/20/2016', '6/25/2016') 

SELECT 
    ActivityType, 
    ActivityDate 
FROM @Data 
    UNPIVOT (ActivityDate FOR ActivityType IN (InstallDate, UnInstallDate)) T 

Это дает следующие строки:

ActivityType    ActivityDate 
------------------------- ------------ 
InstallDate    2016-06-15 
UnInstallDate    2016-06-18 
InstallDate    2016-06-20 
UnInstallDate    2016-06-25