2016-04-28 3 views
0

У меня есть две таблицы с похожими записями. У меня есть результат следующим образом:Как отключить таблицу с именами столбцов

enter image description here

используя следующий запрос

Select 
    New.ParentId     
    ,New.FatherFirstName    
    ,New.FatherLastName    
from ParentsUpdationDetails New 
where New.parentId=15999 

union all 

select 
    Old.ParentId     
    ,Old.FatherFirstName    
    ,Old.FatherLastName    
from parents Old 
where Old.parentId=15999 

Мне нужно UNPIVOT и хочет следующий вывод:

enter image description here

+0

Вы будете хранить числа и строки в том же столбце. Это не похоже на хорошую идею. –

+0

есть ли способ конвертировать все в varchar тип данных –

ответ

0

вы должны быть в состоянии для обработки этого использования CROSS APPLY с несколькими конструкторами значений таблиц и их объединения с использованием INNER JOIN

при использовании Cross Наносить (VALUES (FIELD1), (Field2)) он действует аналогично UNPIVOT в том, что вы получите строку для каждого поля вы перечислить в вашем ТВЦ

SELECT ca.Field, ca.New, lj.Old 
FROM ParentsUpdationDetails new 
     CROSS APPLY ( 
      VALUES ('ParentID',   CAST(ParentID AS VARCHAR)), -- All datatypes must match 
        ('FatherFirstName', FatherFirstName), 
        ('FatherLastName', FatherLastName) 
     ) ca(Field, New) 
     INNER JOIN (
      SELECT ParentID, Field, Old 
      FROM Parents old 
        CROSS APPLY ( 
         VALUES ('ParentID',   CAST(ParentID AS VARCHAR)), -- All datatypes must match 
           ('FatherFirstName', FatherFirstName), 
           ('FatherLastName', FatherLastName) 
        ) ca(Field, Old) 
     ) lj ON new.ParentID = lj.ParentID AND ca.Field = lj.Field 
WHERE new.ParentID = 15999 

быть в курсе, что вы будет конвертировать не varchar datatypes в varchars, чтобы это работало.

+0

Это работает Отлично! Спасибо за ваш ответ ! –

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

  • Нет связанных вопросов^_^